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

Topics - newwaveburritos

#1
Ah, the salad days!  "Enjoy your college years, son, because that is the time in life when least is expected of you."  That is a quote my uncle told me years ago was from Citizen Kane.  It's not and indeed I cannot determine what, if anything, it is from.  But it is the theme of this month's Background Blitz!

Academia, the Quad, parties, new relationships, Spring Break, road trips, sports, competitions, cramming, term papers, final exams, hot professors, hard-ass professors there's a million things that can happen in college!







As usual the votes will be tabulated and entries judged on:

-Concept
-Playability
-Artistic Execution
#2
Done for the $107 Adventure Game Challenge.  Classic EGA graphics and resolution.  A quick little tale where the main drive is wearing disguises in order to pull off a heist.  I had a blast making it and since I already had a lot of useable backgrounds I could concentrate on adding a few little character animations and trying to set a mood. 

Two endings!  Nobody has picked the second one yet!!

AGS Database

Itch Link[/ur]



#3
Fooling around a bit and I created an portrait generator.  I'm using it for another project but it's fun enough on its own to slap it up on itch.  If you come up with a cool one post it!  There is not good way to extract it though lol.  Anyway, there's a couple of Easter eggs.  You can make an EGA portrait of several quasi-famous people if you click around.  Press "M" to enable to cursor if you're not on mobile and if you are on mobile I'm sorry it's so insanely tiny.  I'll add the boy version to this thread when I finish it if that's allowed.  It's all the same thing after all.

EGA FaceMaker 3000


Some generated faces that more or less resemble what you can make:



#4


So, I'm using the @eri0o Mode 7 module and it's working great with one little exception which isn't really related to the module itself but a problem more broadly so I thought I would start a new thread.

The code to add an object to the "ground" sprite is as such:

Code: ags
Mode7Object* Mode7World.AddObject(int x, int z, float factor, int graphic)

I want to randomly populate the ground with trees and rocks.  So far so good, he does this himself in the demo.  The problem is that I don't want rocks and trees to be drawn into the road and I don't know a good way to do this.  The sprite I am using is roughly 3000x800 which makes it feel huge.  I assume going over the sprite with GetPixel is out since that's like 2.5 million pixels to iterate through.  And also there are two colors to disallow not just one (the black of the highway and the yellow painted lines).  I have a Python script that takes a mask of the highway portion of the ground sprite and returns a CSV with the appropriate coordinates but that's still like 600,000 coordinates and I don't think making an array of Points of 600,000 is a really good answer and I'm not even sure how that would be done anyway.  It doesn't need to be pixel perfect, however.  That is there isn't a real need to tell it not to draw a tree on 0,345 0,346, 0,347 0,348 et al. since a block of fifty pixels to allow or disallow is probably sufficient.  You could also anticipate the disallowed shape somewhat by using a pattern (like maybe a sine wave or something) although I'm going to be using a few different maps just to give variation to the highway.  I'm only kind of trying to recreate Desert Bus here!

The short version is that I somehow need to supply that function with "correct" coordinates so that it can draw the objects but not in particular places.  Anyway, thanks for reading!
#5
It's definitely not a perfect system but I think most of that has to do with Instagram's compression algorithm making the pixels blurry than anything else.  Anyway, I'm having fun with it and I thought a few people here might get a kick out of it as well.  If you want to follow Brick Sundown and Ham Embargo's adventure feel free to check it out:

Several minutes of content!
#6
In brainstorming ideas for a new Background Blitz I took a look around my workspace where I do all my pixels and thought to myself "is this an artist's studio?"  Maybe, maybe not but that's what we're gonna do here this month!  How do you work in a studio?  What makes a studio?  Maybe the studio is a crime scene.  I think I remember seeing an AGS game with an artist's studio as the scene of a crime.  Anyway, your imagination is the only limit.

So, for this competition you can do you own studio, your dream studio, an imagined studio, or really any place an artist could work.  The whole world's a studio!

Deadline: June 21st, 2023.  Of course, this is made up and we can fool around with it as needed.

Voting:

Concept: Your background should tell us something about the place you have depicted.
Playability: does it have clearly defined walkable areas, things to interact with, etc?
Artistic Execution: does the image convey the wanted atmosphere? What's the feeling of the place?

Good luck and have fun! Can't wait to see the results of this somewhat meta theme!!





#7
This go-round let's all take a look at the reach of time and its effects on our cities.

Take this to mean whatever you like.  It could be a Rust Belt bar on a street where nobody lives or it could be the seedy underbelly of a dystopian cyberpunk city.  It could be the streets of Whitechapel where Jack the Ripper stalked his prey.  Or just Detroit.  From Wadjet Eye's New York City of the past, present, and future to the steel sky of Union City there's a long history of adventure games taking place in such an environment.






Take three weeks to come up with something then we'll have a week of voting.  Is that the normal period of time?



Entries will be judged on the following and will close on Tuesday February 21th.


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, and so forth?

Artistic Execution: How well does the picture convey an atmosphere? How well is it executed?
#8
Dracula has been annoyed by a rude ghost for the last time.  He takes the affront so personally he chases the ghost into his maze of a dungeon where he aims to dispatch that pesky shade from this mortal coil.  Wander a new maze every game while you find ghost-busting tools in this short EGA dungeon crawler.

MAGS November 2022 entry:

https://springstreetonline.itch.io/ghost-hunter-dracula



#9
There was some chatter on the Discord and since I think there's some people on the forum who aren't there I thought I would make a post to discuss it.  I think it's a really good idea since I think a lot of people here and probably people we don't even know about could really benefit from something like that.  I think making a list of features we would want to include would be a good place to start.  That is, what do we think needs a working example game to showcase?  Some of the discussion on the Discord inlcuded custom dialog options are a custom .Say function.  What else comes to mind?
#10
I'm trying to write some script that renders a first person dungeon crawler screen and while I think this would work I don't really believe it's the simplest way to do it but also I can't think of a better way to do it rather than just brute force.

Code: ags
function renderVisionCone()
{
  if (playerChar.faceDir==eFaceUp){
    
    clearScreen();
    MazeType tile0 = GetCell(playerChar.x-2, playerChar.y-3);
    if (tile0==eMazeWall){
      DynamicSprite.Create(620, 400);
      DrawingSurface *dungeonWalls = Room.GetDrawingSurfaceForBackground();
      dungeonWalls.DrawImage(0, 0, BACK_LEFT);    
      dungeonWalls.Release();
    }
  
    MazeType tile1 = GetCell(playerChar.x-1, playerChar.y-3);
    if (tile1==eMazeWall){
      DynamicSprite.Create(620, 400);
      DrawingSurface *dungeonWalls = Room.GetDrawingSurfaceForBackground();
      dungeonWalls.DrawImage(0, 0, BACK_MIDDLE_LEFT);    
      dungeonWalls.Release();
    }
  
    MazeType tile2 = GetCell(playerChar.x, playerChar.y-3);
    if (tile2==eMazeWall){
      DynamicSprite.Create(620, 400);
      DrawingSurface *dungeonWalls = Room.GetDrawingSurfaceForBackground();
      dungeonWalls.DrawImage(0, 0, BACK_MIDDLE);    
      dungeonWalls.Release();
    }
    
    //MazeType tile3...
    //this times ten plus one more for each cardinal direction == bad times.
    
  }
  
}

EDIT: I realize now I have my coordinates incorrect but I don't think that really affects the concept too much.
EDIT EDIT: I fixed the coordinates.  I was think there were only 10 tiles I needed to render but there are actually 13.
#11
Saturday Night is the Loneliest Night of the Week II: Sunday Morning Coming Down (Hole in the Sky)

After being sucked unwillingly into a vortex the adventure continues! Dropped unceremoniously onto an alien planet Jilly makes her escape into the unknown.  Who knows, maybe you'll make a new friend!  A short point-and-click adventure game with EGA graphics with over 500 frames of animation.  That's, like, maybe a minute!    Made in two weeks for the $106 Adventure Game Challenge.

I'll have to change the name of the "in progress" post since I popped this numbered entry right out and snaked it in line.  So, that one's now III!



#12
Okay, I've got an idea for an icon based dialogue system which I wish to use in addition to the standard Monkey Island-esque dialogue system of the BASS template.  That is, inside of a regular dialogue when you choose an option that will exit the dialogue and enter this new phase of dialogue which will be the player asking about a character.  You'll scroll through the various icons until you find the character you want and then click it.  It looks like this:



In this instance we're talking to the Robot about the Mummy.  So, we have here two pieces of information we need to pass on.  Who we're talking to, and who we're talking about.  I was thinking it would be best to have a big switch case so that it's all in the same place and I can see everything and read everything and add the dialogue or instruction easily in one organized place.  But before we get that far let me show you the scrolling GUI where we choose the character icon because I know we're going to have to use that to pass on the character's icon the player chooses.  It's the same button, I'm just going through the views in order to animate it.

Code: ags

function ScrollLeft()
{
  BackgroundGraphic--;
  if (BackgroundGraphic==-1){
    BackgroundGraphic=7;
  }
    switch (BackgroundGraphic)
    {
      case 0:
        
        btnCharacterChoice.Animate(42, 0, 5, eRepeat, eNoBlock); //cDracula
       
        break;
      
        
      case 1:
      
        btnCharacterChoice.Animate(43, 0, 5, eRepeat, eNoBlock); //cFrank
        break;
      
      case 2:
      
        btnCharacterChoice.Animate(44, 0, 5, eRepeat, eNoBlock);  //cMummy
        break;
      
      case 3:
      
        btnCharacterChoice.Animate(45, 0, 5, eRepeat, eNoBlock); //cPhantom
        break;
      
      case 4:
      
        btnCharacterChoice.Animate(46, 0, 5, eRepeat, eNoBlock);  //cWolfie
        break;
      
      case 5:
      
        btnCharacterChoice.Animate(78, 0, 5, eRepeat, eNoBlock);  //cYoko
        break;
      
      case 6:
      
        btnCharacterChoice.Animate(79, 0, 5, eRepeat, eNoBlock);  //cRobot
        break;
      
      case 7:
       
        btnCharacterChoice.Animate(41, 0, 5, eRepeat, eNoBlock);  //cAlien
        break;
      
      case 8:
      BackgroundGraphic=0;
      break;
    }
}


function ScrollRight()
{
  BackgroundGraphic++;
  if (BackgroundGraphic==8){
    BackgroundGraphic=0;
  }
    switch (BackgroundGraphic)
    {
      case 0:
        
        btnCharacterChoice.Animate(42, 0, 5, eRepeat, eNoBlock);
        
        break;
      
      case 1:
      
        btnCharacterChoice.Animate(43, 0, 5, eRepeat, eNoBlock);
       
        break;
      
      case 2:
      
        btnCharacterChoice.Animate(44, 0, 5, eRepeat, eNoBlock);
        break;
      
      case 3:
      
        btnCharacterChoice.Animate(45, 0, 5, eRepeat, eNoBlock);
        break;
      
      case 4:
      
        btnCharacterChoice.Animate(46, 0, 5, eRepeat, eNoBlock);
        break;
      
      case 5:
      
        btnCharacterChoice.Animate(78, 0, 5, eRepeat, eNoBlock);
        break;
      
      case 6:
      
        btnCharacterChoice.Animate(79, 0, 5, eRepeat, eNoBlock);
        break;
      
      case 7:
        
        btnCharacterChoice.Animate(41, 0, 5, eRepeat, eNoBlock);
        break;
    
    }
}


That's all well and good and works fine, it just doesn't do anything right now. The function to open the GUI is where I start to get lost.  I think it should look something like this:

Code: ags

Character* thisIsWho;
function openCharacterGUI(Character* whoImTalkingTo)
{
  gCharacters.X=player.x-20;
  gCharacters.Y=player.y-90;
  btnCharacterChoice.Animate(42, 0, 5, eRepeat, eNoBlock);  //starts the animation since we have to start it before we can open it
  thisIsWho = whoImTalkingTo;
  gCharacters.Visible = true;  //this is the name of the GUI open in the screenshot.
}


What I think this does is pass along the pointer of who I'm talking to and I'll call this inside each character's dialogue.  That is, when I click from dRobot00 I'll call:

Code: ags

openCharacterGUI(cRobot);


Then I have the big switch case.

Code: ags

function talkToChar(Character* talkAbout)
{
  
  switch(talkAbout)
  {
   case cAlien:
      switch(thisIsWho) //this is who I'm talking to
      {
        case cAlien:
        //talking to Frankenstein about the Alien
        break;
        case cDracula:
        player.Say("Tell me about Dracula.");
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        player.Say("Tell me about The Alien!");
        break;
      }
    break;
    
   case cDracula:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Dracula about the Alien
        player.Say("Tell me about Dracula!");
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cFrank:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Frankenstein about the Alien
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cMummy:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Mummy about the Alien
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cPhantom:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Phantom about the Alien
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cWolfie:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Wolfie about the Alien
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cYoko:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to BrunchLadies about the Alien
        break;
        case cDracula:
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
    
    case cRobot:
      switch(thisIsWho)
      {
        case cAlien:
        //talking to Robot about the Alien
        break;
        case cDracula:
        cRobot.Say("Dracula!");
        break;
        case cFrank:
        break;
        case cMummy:
        break;
        case cPhantom:
        break;
        case cWolfie:
        break;
        case cYoko:
        break;
        case cRobot:
        break;
      }
    break;
  }    
}


So, what I think is I should have a similar function to the one that opens the GUI to close it that tells the switch case who the player clicked on.  And actually, I think maybe I don't want a function at all there or maybe one that returns something?  That's where it all falls apart for me but the theory of that switch case being a shelf to put answers on is really appealing to me. 

Well, thanks everybody!

EDIT: I think I have the comments on my switch case backwards.
#13
Dude, let's just go to the mall.  That old liminal space.  The stuff that dreams are made of.  Are malls dead?  That's up to you to decide!  Food courts, shops, controlled environments.  There's a million things to do at the mall so show me what that is!








Your goal this month is to create a background suitable for an adventure game that fits with the theme of Shopping Mall. Use the pictures above for inspiration if you like, but also feel free to think outside of the box and go nuts!  Or bananas, if you prefer.

Voting will be based on the below (as usual):
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, and so forth?
Artistic Execution: How well does the picture convey an atmosphere? How well is it executed?

The deadline for submissions is the 23rd of August. Look forward to seeing everyone’s entries and happy shopping!
#14
Here's a little note to talk about what I'm working on currently.  As you recall from playing the first one (https://springstreetonline.itch.io/saturday-night-is-the-loneliest-night-of-the-week) that we had a real mystery on our hands when the bride-to-be was whisked away into a vortex of time and space for reasons unknown.  Well, follow their adventures when they find themselves in a castle inhabited by a cast of zany characters including but not limited to Dracula, Frankenstein, the Phantom (no opera), a spooky ghost, an alien, a skeleton with a heavy secret, and of course a mummy.  And a werewolf.  Try it for yourself soon in this EGA, gender-fluid, gun-free, New Wave-inflected classic horror romantic comedy graphical adventure.

EDIT: I released a game that's going by II already so this one gets bumped to III.





#15
My game is not a true 8 bit game but I do use the sixteen color palette exclusively as as an aesthetic decision.  Thus, using character fade outs and ins kind of feels like cheating to me.  When I import a sprite it has a transparency mask already so I'm wondering if there's a way to randomly replace pixels in the sprite with this transparency mask one by one until the whole sprite is then transparent.  This would look a lot better to my eye than having a character fadeout like from the manual:

Code: ags

int trans = cEgo.Transparency;
while (trans < 100) {
  trans++;
  cEgo.Transparency = trans;
  Wait(1);
}


Thanks, everybody!
#16
I know what I would like to do and I'm reasonably certain it can be done but I don't myself have the chops to do it myself so I would appreciate any help.

What I want: a character function that displays a thought bubble GUI when that character is thinking of a particular different character.  I have the thought bubbles themselves laid out in different views and I think animating them with a GUI button since I will want to be able to call it from anywhere.

Code: ags

player.ThinkAbout(Dracula, 10);  //displays the Dracula thought bubble above any character for ten seconds


would be something like:

Code: ags

guiDraculaThoughtBubble.SetPosition(player.x+20, player.y-30);
guiDraculaThoughtBubble.Visible=true;
Button.Animate(VDRACULATHOUGHTBUBBLE, 0, 5, eRepeat)



But this doesn't solve the problem of how long to display it and is really just a pile of pseudo-code I'm using to illustrate a point.  And also it would have to be non-blocking.  Anyway, any thought on this, as always, are very much appreciated.  Thanks a million!!
#17
Well, I got it out of me.  A MAGS entry for this month.  It might take you a half an hour if you want to talk to everyone and right click on everything.  I think it's pretty good, considering.  Rough around the edges maybe but considering I got it done in a month I'm pretty pleased with how it came out.

Full disclosure: This game contains some reasonably mild pixelated nudity.

AGS Database Entry: https://www.adventuregamestudio.co.uk/site/games/game/2604-saturday-night-is-the-loneliest-night-of-the-week
itch.io page: https://springstreetonline.itch.io/saturday-night-is-the-loneliest-night-of-the-week

Synopsis:

You wash up on some faraway beach.  Did you party too hard or did you just listen to the wrong Woody Herman cassette tape?  Did you cross the timelines?  You did, didn't you.  Whoopsie!!




#18
I've been having problems drawing rooms where you get maximum useful space out of it without scaling the characters up and down.  There's always a sweet spot in the middle where everything is hunky dory and then a sort of gray area on the edges of this where you can fudge it but the tops and the bottoms are generally off-limits without scaling the character up or down which I don't really like to do.  Any tricks you've learned?  What happens to me is that you end up with a lot of rooms that look kinda the same so I'm trying to break up the monotony.  Thanks in advance!
#19
https://youtu.be/GZ1pTdmWYXU

EGA palette as well.  I had a lot of fun putting this together.

EDIT: I accidentally uploaded the wrong video where I flubbed the "playthrough."  It is now correct.

DOUBLE EDIT: It was not correct.  Now it is.  I spent all that time on a computer making it and I can't even post a link properly!
#20
AGS crashed out while I was trying to load a game for some play-testing.  Now the editor won't load at all and leaves the little loading screen up indefinitely.  I tried restarting my computer and I tried installing the latest version of AGS but it still won't load.  Do I delete the file referenced in this error code or is there something else I need to do?  I thought I would check in before I started really mucking around.  As always thanks for the help.

SMF spam blocked by CleanTalk