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

#1521
Declare the DynamicSprite at the top of the script, outside the function like so:

Code: ags
DynamicSprite* sprite;


And inside the function, just put:

Code: ags
sprite = DynamicSprite.CreateFromExistingSprite(object[0].Graphic);


Otherwise the DynamicSprite pointer will be deleted when the function finishes, and yes, your object will disappear (or in some cases become the default bluecup).

Edit: Also, if you haven't done so already, you may want to upgrade to AGS 3.0.2 when the final version comes out. With the new DynamicSprite.CreateFromDrawingSurface function, it shouldn't really be necessary to have two backgrounds, just make a temporary copy of the background in the EnterRoomBeforeFadein event.
#1522
Looks great! Seems like it will be full of adventure game in-jokes. I always loved games with a meta twist, like dropping into the Sierra studios at the end of LSL3 or re-visiting the EGA Ulence Flats in SQ4. I think this will be a quite enjoyable romp through adventure game history, and kudos for being almost done before announcing it.
#1523
Great news! I read on the website that you'll be using lipsyncing - let's hope smiley will have updated his audio manager plugin with the automatic lipsync code by the time you've recorded the voices, that should speed things up quite a bit. Really looking forward to it! 
#1524
I haven't looked through the entire code, so there may be other problems. But try changing:

Code: ags
while(p<=partidas.ItemCount)


to

Code: ags
while(p<partidas.ItemCount)


and see if it changes anything. The problem is that arrays indexes start at zero rather than one, so the largest array index you can use is arraysize-1.

Edit: Hmm, although seemingly redundant, the "if (partidas.ItemCount>p)" should actually prevent that issue. I can't really spot any other problems since I don't know what the rest of the code looks like. I don't remember when number of saves was increased from 20 to 50.I see you're using version 2.72 - but if you managed to save 31 games that shouldn't be the cause.
#1525
Indeed. I've been visiting quite a few photo galleries of urban explorers on the web, and decaying buildings are among my own favorite photography motives when I travel abroad. Especially the organic textures of crumbling or water damaged walls. I have tons of reference photos from my own trip to Venice (I may visit again while working on the game now that I got a 4GB memory card for my camera). While I'm not going to use photos as game backgrounds, I consider adding a collector minigame where some rooms have "photo spots" where you can use your in-game camera to take similar pictures of building details.
#1526
Quote from: radiowaves on Sun 25/05/2008 16:39:28You do realize, that graphics has to be really good if you want the game to be fully enjoyable :P Since urbex is 60% gfx.

Hehe, yeah. I know you're at least partly kidding, but I do agree that graphics are an important part of the atmosphere. And I think that they will be up to par - you should see the dust-caught-in-the-flashlight-beam particle effects  ;D. The big challenge will be to make each room feel unique and interesting to explore without losing the maze-like feel of the city and its buildings.

Tuomas, I'm sure there's gonna be a trattoria or two in the game :). Did you ever hear about the game A Quiet Weekend in Capri? They did pretty much what you're talking about, except they used the photos directly as in-game screens. While the game isn't amazing (I'm not too fond of node-based first-person adventures) it does indeed create a true feeling of almost unlimited exploration.

Ok, that's enough off-topic for now. Sorry 'bout that, Jeopardy.
#1527
Perhaps a forum whose members mostly consist of people who grew up with the adventure games of the late 80's and early 90's isn't the most obvious place to find veterans from the 50's and 60's. I think something like this forum or this one would give you better results.

#1528
Quote from: radiowaves on Sun 25/05/2008 13:07:39
Heh. One could do a nice Urbex game, where you have to explore every possible room of an old building and solve the mystery by finding a secret tunnel :P
I love exploring, be it useless or not. I am curious type, and I am always wished that if something is interactable in real life, the game should allow me to interact with it also. I just start crippeling when some room is left unexplored.

Dammit, radiowaves. Urban explorers is actually the topic of a game I will do once Shadowplay is finished. I thought I was on to something quite original, and there you go ruining it  ;). Fortunately there's more to the game concept than that - but please, if anybody happens to be working on a game about a group of urban explorers in Venice with a mystery linked to architectural history, please let me know.
I've been researching the topic for some time now, but if you have a lot of experience in exploring off-limit areas, perhaps you could help me as an advisor on the game?
#1529
freshpaint: I believe the reason you're getting a bluecup is that you declare DynamicSprite *icon_sprite inside game_start. That means as soon as the function has finished running, the DynamicSprite is deleted. Instead, declare:

Code: ags
DynamicSprite* icon_sprite;
outside the function (e.g. at the top of the global script), and then in the game_start, you set:

Code: ags
icon_sprite = DynamicSprite.CreateFromExistingSprite(85, true);


That way the DynamicSprite pointer should remain managed and not turn into a bluecup.
#1530
Advanced Technical Forum / Re: Footstep Sounds
Sun 25/05/2008 04:56:13
Well, yes it would simplify the code to store the coordinate offsets in a struct. The work is about the same, but it would certainly be cleaner to replace that long sequence of if's with an initialization when starting the game. And especially if you later want to release the code as a module, it would definitely be the way to go.

I guess a simple function such as:

Character.SetupFootStepSound(int loop, int frame, int offsetx, int offsety, int sound);

should do the trick. I would recommend setting up several footstep sounds for each character and material though, which would add another parameter to the function. For my game, I set it up so that every character has three step sounds for each floor material. As the sound is playing it is randomized, but with an exception rule that the same sound can't play twice in a row. So if sound 1 is playing, the next sound must be either sound 2 or 3, and so on. It gives a nice, natural sounding step rhythm.

Edit: I should add that since this method plays the sound directly, not using AGS' internal viewframe sounds, the volume won't drop when the character is scaled with walkable area scaling. This is easily solved by playing the footstep sounds in a specific channel using PlaySoundEx and changing the channel volume proportionally to Character.Scaling property.
#1531
I'm not very fond of the Broken Sword games either. I mean, they're ok adventure games, but the characters are bland and the mix of a semi-serious storyline with comedy gameplay makes it difficult to care about the mystery. Also, every single game in the series is marred by a much too short ending without any real interactivity. If I want globetrotting high jinx, I'd rather replay one of the Indiana Jones games. If I'm looking for realistic and intriguing mysteries, the Gabriel Knight games deliver where the Broken Swords fail.

But of course tastes differ, and Broken Sword seems to be quite popular with certain factions of the adventure gaming community. Popular enough to spawn imitations like Secret Files: Tunguska and the Runaway series, both focusing on the same kind of silly (excuse me, I mean "comedic") distraction puzzles and inventory trial-and-error.
#1532
Critics' Lounge / Re: BG Experimenting
Fri 23/05/2008 16:24:58
I agree with Alarconte, that Darth's background fits better with the character. But not in terms of style, only in terms of lighting. You could make him fit very well into your latest background by using region shading and/or tinting.
#1533
If I don't misremember, there's an undocumented Character.on parameter, which can be set to true or false. For the player, this is the same as changing the ShowPlayerCharacter property in the room editor. You can also use Character.Transparency = 100 to make a character invisible.
#1534
From the AGS Tidbits & Snippest doc:

The number of gameloops a speech string is displayed:

Code: ags
int gameloops = ((StrLen(text) / game.text_speed) + 1) * GetGameSpeed();


StrLen() is obsolete though, so formatted to new style code, it would be (assuming a String named "text"):

Code: ags
int gameloops = ((text.Length / game.text_speed) + 1) * GetGameSpeed();
#1535
Quote from: Gold Dragon on Thu 22/05/2008 23:46:32GUI.BackgroundGraphic gets and set the graphic with a sprite number. At least what I can find in the manual. Is there a way to give a DynamicSprite a number to be use for GUI.BackgroundGraphic?  :(

DynamicSprites actually do have sprite slot numbers. Just use DynamicSprite.Graphic (so if you have a GUI names gTextBox and a DynamicSprite called TextBoxSprite, you would write "gTextBox.BackgroundGraphic = TextBoxSprite.Graphic;"
#1536
Quote from: Pumaman on Thu 22/05/2008 20:15:38
QuoteAh, never mind. It seems that it's just functions that are called on pointers that are not listed unless you import them. I guess this is as designed.
I'm not really sure what you mean by this, but ok!!

I mean that the general definitions dropdown in the script window only lists basic functions. Any extender function such as  "function FloodFill(this DrawingSurface*, int x, int y, int color, bool outline)" won't be in the list. Yesterday, when I wrote this, I thought it was because I didn't import them in the module header, but that doesn't seem make any difference. Any chance the dropdown menu could also support extender functions?
#1537
Did anyone play Friday the 13th on the Commodore 64?  At random times, when one of the campers got killed, this screen would pop up accompanied by a digitized screech. Used to scare the bejesus out of me.
#1538
Could the "General definitions" scrolldown menu please be longer and/or have a scrollbar on the side? It's annoying that only some of the functions in your script show up.

Ah, never mind. It seems that it's just functions that are called on pointers that are not listed unless you import them. I guess this is as designed.
#1539
It should be quite soon. There's just an AGS bug holding be back from finishing the in-game toolset at the moment, so I hope it'll be fixed in the next beta.

I found a McGyver'ish way to circumvent the engine's 64-tone grayscale range and paint in 256 tonal values (I think, at least I've measured up to 252 unique grayscale values when indexing the palette of a screendump in Photoshop). You will still need to save the file to BMP and use Snarky's conversion app to make use of the full spectrum in-game, but it can be previewed while editing using scaling interpolation.

The current in-game editing tools are:

Pencil (line tool, used freehand or with single clicks)
Brush (paints a color, uses a pre-defined sprite as alpha mask - allows transparency, even when using alpha channel mask)
Flood fill (fill area or outline with a plain color)
Gradient flood fill (fill area or outline with gradient between two colors, either radial or linear)
Smoothing tool (Blurs edges between colors)
Eraser (erases to RGB(100,100,100) for grayscale or background color for color map)
Color picker (gets color beneath cursor)
Undo (skip back one of 10 undo levels)
Redo (skip forward again if you just pressed Undo)
Zoom function (shows area currently edited enlarged in a 64x64 window)
Change view (show lightmap transparent over background, shows walkable areas)
RGB sliders and color picking from tonal map (would a palette function be of use for anyone?)

Any wishes for further functionality? It should be easy to add a clone stamp, but I'm not sure how useful it would be.
#1540
Advanced Technical Forum / Re: Footstep Sounds
Wed 21/05/2008 19:04:07
If you don't use viewframe sounds but instead trigger each sound from repeatedly_execute by detecting the character's frame (assuming all loops have the same number of frames), you can do the offset through a simple if/else chain:

Code: ags
function repeatedly_execute_always() {
   if (IsGamePause() == 0) {
       if ((player.Frame == 3) || (player.Frame == 7)) { //the two foot impact frames
          int offsetx; //offsets in coordinates from character.x,character.y
          int offsety; //we're gonna use positive numbers
          if (player.Frame == 3) {
             if (player.Loop == 0) {
                offsetx = 10;
                offsety = 2;
                }
             else if (player.Loop =  1) {
                offsetx = -5;
                offsety = 4;
                }
             //Etc. etc.
             }
          //Repeat for other foot
          if (Region.GetAtRoomXY(player.x+offsetx, player.y-offsety) == region[1])  PlaySound (norm);
          else if (Region.GetAtRoomXY(player.x+offsetx, player.y-offsety) == region[2])  PlaySound (norm2);
          //and so on
          }
      }
   }


You could also set up a large struct based on each character's loop and frame settings and store the information there. Each character would still need loops*2 coordinate sets defined for him though.
SMF spam blocked by CleanTalk