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

#161
Completed Game Announcements / Re: Sepulchre
Fri 04/10/2013 13:41:12
What a great little game!  I think the fact that we're all talking about it is a testimony to its quality.  I liked the atmosphere, the look, and the dramatic timing.  At one point, I asked the children to leave, because I was sure that the next part would be too scary.  :)

It's a little buggy.  It's hard to catch them all.  I think Crimson Wizard did a fine job of listing them, but I don't remember him listing...

Spoiler

It looks like the conductor's bag has the background painted around the object's sprite.  When you walk behind it, you walk behind the immediate background.
[close]

#162
Quote
That the game got shipped in this state is ridiculous.

Wow... thanks, Ben.  I'll bet that the artists were upset, too.  They were probably forced to ship.  I can imagine execs dumping on a speculative project like this.

"You're not done yet?  This was supposed to be a turn-key project!  Get it out the door!"
#163
This is a great idea.   I wanted to play with AGS so much that I even switched from Linux to do it!  That was a huge loss. . . :P 

AGS is great, but it's a bit frustrating at first for those who are used to more robust debuggers, automated testing, and automated resource compilation apart from the GUI.  I haven't been around long enough to "feel qualified" to put a Best Practices page together, but AGS could really use one.  Many of the features mentioned in this thread are available with AGS, as some are quick to point out, but you have to mine the forums to find them once you realize the problem with the "standard way" of implementing the games (I'm thinking about non-blocking speech, "got there" style walking, BASS interface, and so on). 

It's worth it.  AGS rocks, and so does this community. :=  But one day . . .   
#164
The Rumpus Room / Re: Name the Game
Thu 26/09/2013 12:54:33
The 11th Hour?
#165
Cacho Quest.  There's a room with a girl kissing a lizard while a Pink Floyd midi plays in the background.  It's in Spanish.  The whole game... not just the lizard kissing girl.  There's a hippy too.  I have no idea what's going on.  Well... okay... I have *some* idea, but it's more of a "I know enough Latin to know some Spanish" kind of idea.  Spanish for hippy is "hippy," but with an accent.  I think Cacho refers to illicit drugs.  Just guessing. 
#166
General Discussion / Re: Graduation!
Fri 20/09/2013 12:05:06
Congratulations!

#167
This is a great idea!  :-D  Nice excuse to take a break and play a game. 

I hit Cacho Quest.  I'll give it a try latter today.   
#168
Quote from: Crimson Wizard on Thu 05/09/2013 09:41:55
Quote from: Radiant on Thu 05/09/2013 09:31:47
Technically true, but that doesn't solve the other issues with verb coins, i.e. that extra actions are needed to perform a simple task. The player now has to (1) click, (2) wait for the animation, (3) move the mouse to the right icon, and (4) click again. Frankly, an interface like this would make me quit the game within minutes.
I think there could be an alternative:
- Short click: default verb (open door, pickup item, look at for RMB);
- Long click: display additional verbs.
If long click is hard to use (to determine a time period needed), it may be "hold and drag to the side" - which opens menu at the place defined by drag direction. Or just double-click.

I like this.  This option allows the convenience of giving the player a default interaction on the one button/one touch/LMB, and it also allows for more complex contemplative interaction.  While the verb-coin circle (mentioned in other posts above) is creative, it's been done many times before, and I don't think it's ever taken off for many of the reasons cited.  My vote:  It just gets in the way.  To implement Crimson's long-click idea, I think I'd make a pop-up/slide-in verb coin bar on one of the the edges of the screen with a limited amount of useful (and used!) verbs.   


#169
It's not so much his team as just me.  :-D  I have been playfully pointing out the games that break the BASS mold. Let the dog pile commence...

We're not really disagreeing on the interface, but just on what is more important: interacting or looking.  I said that whatever is mapped to the LMB must be the most important action.  The RMB needs to be the action that takes just a little more effort, and thus, will be often skipped.   

So, which is more important?  Look first and then act?  Act and possibly never look?  Does the player want to answer the question, "What's that thing?" before rushing to use it?  Is the game more about exploring before taking action, or taking action with optional exploration? I don't think this is a closed-case for every possible game, even if many people are used to one kind of control.  I can easily imagine a player being frustrated with the default being "walk over there and pick that up" rather than "tell me what it is first."  Unless they've played many of these games and expect this to be their character's first reaction, but then we're back to the question, "Which was really more intuitive?"

Making descriptions for "look" is more expensive in terms of time, effort, and memory (space).  We certainly don't want to put most of our expense into descriptions if they are unnecessary or skipped, and we certainly don't want to beg the user to please remember to look at items so that they can be entertained.  That would be silly, too. (roll) 

As was mentioned in the thread above, I think we're settling on asking ourselves the question, "And why do we even bother with a 'look' button?"  We're going to play with some options in a sandbox app and try them out.  Either making "looking" entirely obsolete or making it clearly "examine more closely," which would certainly be a more contemplative and optional action.  This goes along with making the player aware of which items can be examined and which cannot. This will keep it from being a guessing game for every hotspot, and the game will not seem incomplete when we choose not to include a repetitive description.  This certainly beats generic responses for dozens of items, and the nightmare of voicing useless descriptions.  Random generic responses also get tiring. Additionally, we are looking at making the player aware of the default action by contextually describing what "interact" means before they take that action, alleviating the frustration mentioned above.

The portability advantages of ditching the RMB are attractive too, even though that's another issue.

The design issue really came to a head with signs and similar objects where "look" is the default rather than the optional interaction.  What should be the default interaction with a sign?  Probably reading.  How is that different from looking at it?  Do we need to further describe every sign?  Do we simply "read" them with both the interact and look buttons (that was the first idea)? How about reading them with the mouse hover instead since that's a "kind of look?" Do we need to read them *more*?  What about pulling them off the wall?  Although, shouldn't that be the option that takes more effort (RMB) versus the default action (LMB)?  Etc., etc.

Whatever we settle on, LMB will be the default action, and a BASS-style system is our basic model.



#170
I found a small bug in the module.  Others may have seen this problem too.

float GetDistance(int fromX, int fromY, int toX, int toY) {
  return Maths.Sqrt(
    Maths.RaiseToPower(IntToFloat(toX - fromX), 2.0) +
    Maths.RaiseToPower(IntToFloat(toY - fromX), 2.0) // *** this should be fromY
  );
}

#171
I love the writing!  Much humor.
#172
One of the reasons I started picking up AGS was to use it as a platform for teaching my children how to make games.  My son and daughter have made a few things already while working through tutorials.   

I was working on Captain D's game the other day when my son came up to me with a handful of change and said, "If I paid you this, would you make me a Hobbit sprite?"  :smiley:  Cute, eh?  I told him I'd do it for free.  Then he added, "And Gandalf...  with walk animations."  Then he wanted a hobbit hole.  Feature creep.  It always happens. 

I told him that this month's MAGS theme is "Heat."  He said, "What if Smaug's family came looking for Bilbo after The Hobbit and before The Fellowship of the Rings?"   Fantastic idea. 

But I don't think we'll get it done... Plus, I don't like getting nasty-grams from the Tolkien Estate lawyers.   So, I thought I'd just post a WIP and probably leave it at that.  The following is his idea, along with my hobbit hole.   

The Burning of Bree 

Years after the events of The Hobbit, Bilbo is restless.  He needs a holiday.  Convinced by Gandalf to join him on a trip to Rivendell, they head off on their journey.  Passing over the Brandywine river bridge he finds Bree in flames.  It's a dragon from the Iron Hills!  Of course, Gandalf is no longer anywhere to be found.  Convinced by a resident to seek help from the husband of the River-woman's daughter, who is said to live on the edge of the Old Forest, Bilbo must brave crossing the Barrow Downs before the dragon returns.

[imgzoom]http://s14.postimg.org/ie515q7ep/Hobbit_Hole1.png[/imgzoom]
#173
This game is really coming together!  ;)  Good job, Radiant et. al.
#174
[blushing]  Thanks guys!  I know the backgrounds aren't perfect, but I'm trying to make "the look" all flow together.  We're getting there...  We have some great help coming on board, and the music is fantastic.
#175
It keeps telling me that I have already voted, but I think my daughter must have done it when my AGS account was open on the family computer.  I hope she had good taste!  :)   So many good games!

#176
Yes, I still exist.  I have wanted to be more involved with the AGS community, but I had some issues in Real Life that took my attention.  My first AGS commitment was made to Captain D to help code Death Has a MSB when he advertised in the help wanted thread, and so, I am focusing on keeping that commitment before doing anything else. 

This game is not about the art.  But when we took a step back and started playing through Stomping Boots, it seemed to me that the screens were just too different from one section to the other. I started "touching them up" to make them fit the demo and... well... now we're redoing some them as fast as possible in order to stay on schedule! I know they're not perfect, but I think the style holds together. 

While many are doing OROW 8 I'm doing a OWOM (One Week One Marketplace) re-drawn, re-coded challenge!  Only a few days left!

#177
I'm thinking that since it's Rumpus Room, it's OK.  ...or at least that's going to be my excuse when someone complains that I'm jumping on the bandwagon. :-D

[rumpus on]
The Hobbit HFR.  No, seriously.  It's Peter Jackson's scariest film to date.  I almost fell into a fetal position in the lobby on the way out of the theater.  If you want to see something messed up, see the Hobbit.  If you want to cry uncontrollably, see the HFR edition.

Ok... maybe I'm exaggerating a bit...  Although it is a horror movie in the making.  If the next movie slaughters the franchise any more, an undead Tolkien is going to begin the zombie apocalypse.   Stay away from Oxfordshire.  Unless your Mouth of War...

...and looking for that sort of thing.
[rumpus off]

#178
Hello Vugmer!

Quote from: Vugmer on Wed 19/12/2012 20:28:45
Hello.  What is the best program for a beginner for creating backgrounds, sprites, etc.?  Is it MSPaint, Adobe Photoshop, or something else?

If you're serious, I would recommend buying a Wacom tablet.  You can find one online anywhere from 50 to 1,000 USD, but you should get one that comes with Photoshop Elements. 
#179
I wasn't going to spend any time changing his code.    :)  I just took a few minutes to reorganize what was there in order to help him find his bug.  If you want to rewrite it for him, have at it!  ;)   

Your rant was well deserved.  Throwing that mess up and going to bed was cheap... I'm looking at you Icey.   :)


#180
Icey,

Whoa!  Pass the parmesan cheese, dude!   :smiley:

I'm not totally sure what you were trying to do, but since I was procrastinating this afternoon, I reformatted your code a little bit.   I had to do this in order to read it.   :-\  I think your problem was in the tautology.

You say that it's working now.  Great!  Maybe this reformatting can give you a few ideas for the future... Of course, there's more work to be done in making this code concise and readable.  I just spent a few minutes on it.

BP

Code: AGS
//
//  __attack_graviga()
//
function __attack_graviga()
{
   DisplayAt(115, 10, 200, "Graviga");

   if(Game.DoOnceOnly("666"))
   {
     Troll.SayAt(8, 167, 320,"I control your fate!");
     Troll.SayAt(8, 167, 320,"Now DIE");
   }

   ATK2trol -= 5;
   Troll.ChangeView(42);
   Troll.Animate(2, 5, eOnce, eBlock);

   object[15].Visible = true;
   object[15].TweenTransparency(0.3, 100, eLinearTween, eBlockTween);
   object[9].TweenTransparency(0.4, 50, eLinearTween, eBlockTween);
   object[6].Visible = true;  
   object[6].Transparency = 0;
   object[6].SetView(5);
   object[6].Animate(0, 5, eOnce, eBlock);
   object[6].Visible = false;
   Troll.ChangeView(42);

   damage.Text = String.Format("%d",Gravity);

   gGui4.Visible = false;
   gGui4.Transparency = 100;
   gGui4.SetPosition(254, 116);
   gGui4.Visible = true;
   gGui4.TweenTransparency(0.5, 0, eLinearTween, eNoBlockTween);
   gGui4.TweenPosition(0.8, 254, 86, eEaseOutTween, eBlockTween);
   gGui4.Visible = false;

   PlayerHP -= Gravity;

   object[9].TweenTransparency(0.4, 100, eLinearTween, eNoBlockTween);

}

//
//  __attack_darkra()
//
function __attack_darkra()
{
   DisplayAt(115, 10, 200, "Darkra");
   
   ATK2trol += 1;
   Troll.ChangeView(42);
   Troll.Animate(2, 5, eOnce, eBlock);

   object[15].Visible = true;
   object[15].TweenTransparency(0.3, 100, eLinearTween, eBlockTween);
   object[9].TweenTransparency(0.4, 50, eLinearTween, eBlockTween);
   object[16].SetPosition(-40, 1);
   object[16].TweenPosition(1.9, 318, 284, eEaseOutTween, eBlockTween);
   Troll.ChangeView(42);

   damage.Text = String.Format("%d",Darkra);

   gGui4.Visible = false;
   gGui4.Transparency = 100;
   gGui4.SetPosition(254, 116);
   gGui4.Visible = true;
   gGui4.TweenTransparency(0.5, 0, eLinearTween, eNoBlockTween);
   gGui4.TweenPosition(0.8, 254, 86, eEaseOutTween, eBlockTween);
   gGui4.Visible = false;

   PlayerHP -= Darkra;

   object[9].TweenTransparency(0.4, 100, eLinearTween, eNoBlockTween);

}


//
//  __troll_lord_death()
//
function __troll_lord_death()
{
   Troll.SayAt(8, 167, 320,"No, this can not be!");
   Troll.SayAt(8, 167, 320,"I've come so far! I've done so much!");
   Troll.SayAt(8, 167, 320,"I can't fail my master now...");
   Troll.SayAt(8, 167, 320,"Fools! take this.");
   Troll.ChangeView(42);
   Troll.Animate(2, 5, eOnce, eBlock);

   object[15].Visible = true;
   object[15].TweenTransparency(0.3, 100, eLinearTween, eBlockTween);
   object[9].TweenTransparency(0.4, 50, eLinearTween, eBlockTween);
   object[6].Visible = true;  
   object[6].Transparency = 0;
   object[6].SetView(5);
   object[6].Animate(0, 5, eOnce, eBlock);
   Dawn.ChangeView(44);
   Dave.ChangeView(13);
   object[6].Visible = false;
   Troll.ChangeView(42);
   object[9].TweenTransparency(0.4, 100, eLinearTween, eNoBlockTween);
   Dawn.SayAt(8, 167, 320,"He's...getting stronger, at this rate we-");
   Dave.SayAt(8, 167, 320,"No! don't say it, remember what you said.");
   Dave.SayAt(8, 167, 320,"We gott keep thinking positive, we believe there's a chance.");
   Dave.SayAt(8, 167, 320,"We take what he gives us and we send it back 1000 times stronger!");

   Troll.SayAt(8, 167, 320,"You fools...now your time here is over!");
   Troll.SayAt(8, 167, 320,"I call to the, comet of the dying star!");

   Dave.ChangeView(43);

   Dawn.SayAt(8, 167, 320,"Dave what are you doing! you must flee at once!");
   Dave.SayAt(8, 167, 320,"Like hell I am! we're in this together!");
   Dave.SayAt(8, 167, 320,"My quest is to save the world, and that means protecting you.");
   Dawn.SayAt(8, 167, 320,"But why Dave, why put yourself in harms way?");
   Dave.SayAt(8, 167, 320,"Cause your my friend!");
   Troll.Animate(2, 5, eOnce, eBlock);

   object[15].Visible = true;
   object[15].TweenTransparency(0.3, 100, eLinearTween, eBlockTween);
   object[9].TweenTransparency(0.4, 50, eLinearTween, eBlockTween);
   object[11].Visible = true;  
   object[11].TweenPosition(1.10, 172, 137, eEaseInTween, eBlockTween);

   FadeOut(1);
   Dave.ChangeRoom(20, 0, 0); // leave room
}

//
//  __player_death()
//
fuction __player_death()
{
   Dawn.ChangeView(44);
   Dave.ChangeView(13);

   Dave.SayAt(8, 167, 320,"Could this, really be it?");
   BBlack.Transparency = 100;
   BBlack.Visible = true;
   BBlack.TweenTransparency(0.9, 0, eLinearTween, eBlockTween);
   SetFadeColor(0, 0, 0);
   RestartGame();  // restart game
}

//
//  __setup_dave()
//
function __setup_dave()
{
   //  Dave walks to the correct position
   Davex = Dave.x;
   DaveY = Dave.y;
   Dave.SetWalkSpeed(10, 10);
   Dave.Walk(102, 164, eBlock, eAnywhere);
   Dave.ChangeView(35);
   Dave.Animate(1, 5, eOnce, eBlock);
   Dave.x = Davex;
   Dave.y = DaveY;
   damage.Text = String.Format("%d",DaveATK);
  
   // Gui 4 fade in 
   gGui4.Visible = false;
   gGui4.Transparency = 100;
   gGui4.SetPosition(61, 106);
   gGui4.Visible = true;
   gGui4.TweenTransparency(0.5, 0, eLinearTween, eNoBlockTween);
   gGui4.TweenPosition(0.8, 61, 81, eEaseOutTween, eBlockTween);
   gGui4.Visible = false;
 
   // Remove DaveATK hit points from the Troll Lord
   trolllordHP -= DaveATK;
   Dave.ChangeView(40);
}


//
//  __setup_dawn()
//
function __setup_dawn()
{ 
   DisplayAt(115, 10, 200, "Pyraga");
   Dawn.ChangeView(8);
   Dawn.Animate(1, 5, eOnce, eBlock);
   object[9].TweenTransparency(0.4, 50, eLinearTween, eBlockTween);
    
   object[14].Visible = true; 
   object[14].SetView(41);
   object[14].Animate(0, 4, eOnce, eBlock);
   object[14].Visible = false;
   Dawn.ChangeView(7);
  
   DawnMGK += fire;
 
   damage.Text = String.Format("%d",DawnMGK);
 
   gGui4.Visible = false;
   gGui4.Transparency = 100;
   gGui4.SetPosition(61, 106);
   gGui4.Visible = true;
   gGui4.TweenTransparency(0.5, 0, eLinearTween, eNoBlockTween);
   gGui4.TweenPosition(0.8, 61, 81, eEaseOutTween, eBlockTween);
   gGui4.Visible = false;
 
 
   trolllordHP -= DawnMGK;
   DawnMGK -= fire;
   object[9].TweenTransparency(0.4, 100, eLinearTween, eNoBlockTween);
}


// *************************************************************************************
//
//  Button16_OnClick(GUIControl *control, MouseButton button)
//
// *************************************************************************************
function Button16_OnClick(GUIControl *control, MouseButton button)
{
   Troll.Baseline = 5;
   mouse.Visible = false;

   //gGui3.TweenTransparency(0.5, 100, eLinearTween, eBlockTween);

   __setup_dave(); // move Dave to position
   __setup_dawn(); // move Dawn to position
   
   PlayerMP -= 18;
    
   if ( trolllordHP <= 0 )
   {
      // This will execute when the Troll Lord's hitpoints expire.
      
      __troll_lord_death(); // When the troll lord dies, Dave will move to room 20.
   }
   else if( trolllordHP >= 1 )
   {
      // This will execute while the Troll Lord is alive.

      if( Game.DoOnceOnly("first strike") )
      {
         Troll.SayAt(8, 167, 320,"A splendid combo!");
         Troll.SayAt(8, 167, 320,"But alas, your still no match."); // ** your should be you're
         Troll.SayAt(8, 167, 320,"Now, stagger with PAIN!");  
      }

      // ************************************************************************************
      //
      //  I do not know what ATK2trol is, but this fuction will always exit here.  What 
      //  you have coded is a tautology.
      //
      //  This is a simpler version:
      //
      //  if ( ATKtrol > 4 )            // if 5 or greater
      //  {
      //     // do something...
      //  }
      //  else                          // else 4 or less
      //  {
      //    // do something else...
      //  }
      //
      //  The code below the comment "STOP" will never be executed. 
      //
      if( ATK2trol >= 5 )  // if 5 or greater
      {
         __attack_graviga();
         
         return;
      }
      else if( ATK2trol <= 4 ) // else if 4 or less
      {
         __attack_dakra();
         
         return;

      }

   } 
 
   // ***************************************************************
   // STOP
   // ***************************************************************
 
   //
   //  You say that the player death happens, but without me using the crutch of stepping 
   //  through the code in the debugger (i.e. running this in AGS), I cannot see 
   //  how you would ever get here.  I may not have copied your code correctly 
   //  from the forum...
   //
   //  Nevertheless, if you organize your code a little more neatly, it will be easier for
   //  you to debug.
   //
 
   if( PlayerHP <= 0 ) 
   {
      __player_death();
   }
   
   // ** your original comment
//it keeps stoping here
   // ** 
 
 
   //  Yes...  rewrite this.  
   
   if(Button15.Width == 1)
   {
     Button15.Width = 5;
     return;
   }
   else if(Button15.Width == 5)
   {
    Button15.Width = 10;
    return;
   }
   else if(Button15.Width == 10)
   {
     Button15.Width = 15;
     return;
   }
   else if(Button15.Width == 15)
   {
     Button15.Width = 20;
     return;
   }
   else if(Button15.Width == 20)
   {
     Button15.Width = 25;
     return;
   }
   else if(Button15.Width == 25)
   {
     Button15.Width = 30;
     return;
   }
   else if(Button15.Width == 30)
   {
     Button15.Width = 35;
     return;
   }
   else if(Button15.Width == 35)
   {
     Button15.Width = 40;
     return;
   }
   else if(Button15.Width == 40)
   {
     Button15.Width = 45;
     return;
   }
   else if(Button15.Width == 45)
   {
     Button15.Width = 50;
     return;
   }
   else if(Button15.Width == 50)
   {
     Button15.Width = 55;
     return;
   }
   else if(Button15.Width == 55)
   {
     Button15.Width = 60;
     return;
   }
   else if(Button15.Width == 60)
   {
     Button15.Width = 65;
     return;
   }
   else if(Button15.Width == 65)
   {
     Button15.Width = 70;
     return;
   }
   else if(Button15.Width == 70) 
   {
     Button15.Width = 75;
     return;
   }
   else if(Button15.Width == 75)
   {
      Button15.Width = 78;
      if(Game.DoOnceOnly("Assault"))
      {
         Dawn.SayAt(8, 167, 320,"Dave, now is our chance!");
         Dave.SayAt(8, 167, 320,"Let's show him what light can really do!");
      }
      Button17.Visible = true;
      return;
   }
   
   //  Do you only want to get here when the button width is not a mulitple of 5?
   //  Do you set it to such a value somewhere else in your program?
   //  In  the code above, you will only pass by this if/else when you set it to 78.
   
   // Fade GUI 3 onto the screen.  Is this the end of the attack sequence?
     
   gGui3.Visible = true;
   gGui3.TweenTransparency(0.5, 0, eLinearTween, eBlockTween);
   mouse.Visible = true;
  
}
SMF spam blocked by CleanTalk