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

#1
I have two custom menu systems in my game. One for verbs, one for dialog. They work pretty similarly: the menu pops up, enters a while loop sort of like this:
Code: ags

bool chosen;
while (chosen==false) {
    if (IsKeyPressed(eKeyDownArrow)) [[[scroll menu down]]]
    if (IsKeyPressed(eKeyUpArrow)) [[[scroll menu down]]]
    if (IsKeyPressed(eKeyReturn) || Mouse.IsButtonDown(eMouseLeft)) chosen = true;
Wait(1);
}

(They're more complicated than that, checking for mouse movement as well.)

Basically, I want to add the ability to scroll the menu with the mousewheel during this loop. But apparently eMouseWheelNorth and eMouseWheelSouth can ONLY be detected by on_mouse_click. And on_mouse_click does not fire during a while loop. Is there any workaround?
#2
I have a custom system for interactions that involves Room.ProcessClick when the character reaches their destination. For some reason, there are a couple of hotspots in one particular room whose interactions don't run some of the time. I'm having trouble figuring out exactly what determines whether or not it happens.

Anyway, in my custom system, it runs Room.ProcessClick(x, y, eModeInteract) at one point. It's just not happening! The section of code it's in definitely is running. There's nothing disabling the hotspots.

To debug, I tried sticking the following code right above ProcessClick:
Code: ags

InventoryItem *currentINV = InventoryItem.GetAtScreenXY(x, y);
Hotspot *currentHS = Hotspot.GetAtScreenXY(x, y);
GUI *currentGUI = GUI.GetAtScreenXY(x, y);
Object *currentOBJ = Object.GetAtScreenXY(x, y);
Character *currentCHR = Character.GetAtScreenXY(x, y);
if (currentGUI!=null) Display("GUI %d",currentGUI.ID);
if (currentINV!=null) Display("INV %d",currentINV.ID);
if (currentOBJ!=null) Display("OBJ %d",currentOBJ.ID);
if (currentCHR!=null) Display("CHR %d",currentCHR.ID);
if (currentHS!=null) Display("HS %d",currentHS.ID);
This should tell me if there are any other hidden elements somehow stealing the click. Nope, none of them popup except the HS one, which displays the appropriate ID. By all means, ProcessClick should be succeeding every time, and I can't figure out what might be blocking it. I've also tried termporarily using currentHS.RunInteraction instead, but it's the same thing.

Running 3.4.0.4, so there could be some issue I'd need to take with the devs.
#3
I'm replacing the Say function using overlays from DrawStringWrapped. I'm able to pretty accurately mimic the way the built-in Say option wraps and positions dialog, but I'm having trouble getting the dialog to align to the edge of the screen if the character is standing there.



For example, the text displayed by DrawStringWrapped is set to wrap to 160px wide. This results in text that's actually 130 pixels wide, but I can't figure out how to get that number in script, so it's aligned based on the 160px value, which results in awkward placement.

Here's how .Say normally displays it:

(ignore the disembodied head)

Is there some way to do this?
#4
AGS Games in Production / Icon Architect 1.0
Wed 04/02/2015 08:04:04
Coming in 1990...



This is a full-length game I'm working on. It takes place within the headquarters of a major computer company-- contemporaries of Microsoft, Apple, and NeXT...



The hero is Jan,
a young graphic designer who is tasked by Giacomo,
(master painter of clipart and icons)
with taking reference photos of wastebaskets.



Their team is building a revolutionary operating system.
Jan will explore the burgeoning world of tech culture;
A state-of-the-art corporation
on the verge of unleashing an incredible new paradigm.



Jan soon becomes caught up in an industrial espionage plot,
uncovering the strange, world-shattering secrets of her employers.
Exactly why is this OS so revolutionary?
Exactly how many floors does this building have?


Masochistically created in 256-color mode, so I can do effects like this.


Parallax scrolling test.


Planned features:

  • 40-ish rooms
  • OPL2 (Adlib/FM synthesis) music and sound effects
  • Quasi-iMuse music system
  • Verbs and context-menus
  • Pause during cutscenes!
  • Save during conversations!
  • The extremely Good fashion of the time
  • Beige
  • Fear
  • Blood
  • Antediluvian relics
  • Trust exercises
#5


https://www.kickstarter.com/projects/thimbleweedpark/thimbleweed-park-a-new-classic-point-and-click-adv

Check it out, Ron Gilbert and Gary Winnick are re-teaming to make a new game! Looks pretty awesome.
#6
While doing design on a game, so I took inspiration from the amazing Grim Fandango design document and started laying out my puzzles and goals in flowchart form. The Grim Fandango flowcharts are quite simplified, so I looked around to see if I could find any other games illustrated like this.

Someone made a pretty cool flowchart of Monkey Island 1's puzzles (with analysis). It's a little disorganized, but perfectly illustrates how the gameplay style changes in different parts of the game.

For the hell of it, I tried making my own flowchart for MI2. I got as far as the first two chapters, which I think are the most interesting.



How I color coded it:
Green boxes are major bottlenecks, chapter breaks. Each is a main goal you're given for each chapter: get off the island, collect the four map pieces.
White boxes are sub-goals, which you learn of fairly early on in the chapter. They're repeated in the yellow boxes at the end of the chapters, ultimate goalposts before you can move on.
The teal boxes are actions that are mini-goals that you (probably) clearly identify before solving. You know you need Stan's crypt key; not because you're a kleptomaniac, but because there's a crypt you need to open.
The grey boxes are actions taken in service of the mini-goals, but through idle exploration and curiosity, or the occasional epiphany. There's no particular motive for winning the spitting contest, it's not obvious you'll need the prize. It's just there, and this is an adventure game. (Some of my teal/grey choices might be a bit arbitrary; I didn't spend too long on this.)

Overall, you can see how MI2's nonlinearity works. Chapter 1 is a simple experiment in distinct dual puzzle branches; there's really only one time they overlap (cutting the gator loose) before the end.
Chapter 2, on the other hand, has four major lines which intertwine in many interesting ways. First off, aside from Rapp's map, you can't make real progress on any of the lines until you've been arrested on Phatt Island. So there's a major cutscene and plot point which has to occur early on in the chapter.
From there, there are many little cross-steps that ensure you're making progress on all the map pieces somewhat equally. For example, you get the telescope while chasing Elaine's map piece, and then it's the final object you need to get Rum Rogers'.

Anyway, as silly as some of MI2's individual puzzles are, its overall puzzle structure is, for my money, the gold standard. It's just immensely satisfying to hop all around the game's world, juggling a handful of big goals. It strikes a great mix of puzzles with clear purposes and puzzles with surprising benefits.

What strikes me, however, is how opaquely some of the sub-goals are laid out for the player. MI1 was very obvious about this too-- these games love to hand you a shopping list of Pirate Trials, Voodoo Ingredients, and Map Pieces, always divided into three or four. That's fun in a lighthearted fantasy game, but you can't always be so obvious. Can anyone name games with (at least a chapter of) similarly non-linear goals that accomplish this in a more organic way?

I made this with yED, if anyone wants to try.
#7
Photoshop's tools aren't always ideal for pixel-level painting. I'll show you what I mean.


This is Photoshop's brush tool at the smallest setting, with maximum hardness. It's still too blurry! I notice a lot of games, even ones with really good graphics, have backgrounds that look too blurry-- because they were painted with tools that aren't meant to be displayed at 3x. Similarly, the default anti-aliasing settings on the text tool do wonky things with subpixels. For low-res art, it's ugly.


On the flip side, Photoshop's pencil tool has a hard, binary edge. This is the tool you should generally be using for pixel art, but the lines it makes can be too harsh to the eye. Same with text.
You can try to fix this with Photoshop's blur filters, but they'll just make it look hazy. A pixel artist will tell you that you need to get in there and selectively anti-alias those lines manually. Tedious work.

But hey! I found a tool that offers a great in-between option: MLAA.


This is what it looks like when you take the pencil tool's harsh lines and run them through the MLAA filter.
In my opinion, this is the easiest on the eye. Very readable, not too blurry nor too crisp and harsh.

To get it:
First, you'll have to install Pixel Bender for Photoshop CS4 or CS5 (later versions have dropped support, unfortunately.)
http://www.adobe.com/devnet/pixelbender.html

Then, get the MLAA plugin and install the PBG file (or copy it to the "Pixel Bender Files" in your Photoshop program folder.)
https://www.adobe.com/cfusion/exchange/index.cfm?event=extensionDetail&extid=2230024

Pixel Bender will show up in your Filters menu. Click it and Select MLAA from the dropdown list.


You'll probably be good with Threshold at 0.01, Edge Detection Algorithm at 0, and Max Edge Length at 1 or 2 (higher can be too blurry, but is sometimes useful for certain shapes.*)



You might think this is really subtle or nitpicky, but when the player's staring at your backgrounds for extended periods, you really need to get the sharpness right.


(* One minor problem is that it can make unwanted effects in the corners of the image, so watch out for that--maybe work with a canvas slightly bigger than you need.)
#8
Critics' Lounge / Bill Gates in darkness
Tue 15/04/2014 05:21:26


My first stab at pixel art in a while. Critiques? Weird palette? Lighting messed up?
#9


http://danfessler.com/blog/hd-index-painting-in-photoshop

This seems really useful, especially for backgrounds.
I've got it working in CS5. It takes a little figuring out if you're not used to using layer styles, but it's really fun to play around with various photoshop tools and watch it rendered in a genuinely low-res style.

#10
I love the look and feel of old school top-down RPGs-- the exploration, the use of tiled graphics to map out huge worlds, secret paths and caches. I love it as a medium for storytelling.
But I just cannot stand the constant grinding, fighting and leveling up. To me, it's a repetitive, artificial waste of time that brings gameplay to a halt. I've never finished an RPG, because the mechanics are just so uninteresting to me. Even something like Zelda's fighting just feels like a distraction from more intriguing stuff.

Does anyone know of any games that lack those elements and instead focus on exploration, interaction with the environment, and more nuanced problem-solving? Basically, an adventure game with a more open world? I'd really love to try that. Most adventure games' locales are rather constrained by the challenge of individually painting each background. The freedom of a tiled system would really seem like an adventure world-designer's dream. So why is the best example I can think of, uh... Yoda Stories?
#11
If it's relevant to anyone's support, Doug Tennapel is kind of a shit. Not quite Orson Scott Card levels of gross, but worth pointing out.

(Mod Note: This topic was split from here)
#12
Since AGS's fullscreen mode can look and act wonky on a some screens, I decided to make a sort of faux-fullscreen launcher with AutoHotkey.

What my script does: First, it changes the game to windowed mode in 2x, 3x, or 4x (whatever will fit, depending on your screen's current resolution.)
It then runs the game atop a black background, so Windows or your desktop are not visible under the game. It also disables the title bar and resize-edges of the game's window.
While the game runs, it checks if the game loses focus from alt-tabbing or whatever, to avoid graphical glitches when you bring it back to focus.

To use:

1. You'll have to install AHK, which you should anyway, because it's infinitely useful.

2. Create an .ahk file in the game's folder containing the code below.

Code: AGS

GameWidth = 320
GameHeight = 200
GameExe = Game.exe
GameCfg = acsetup.cfg
 
scrX = %A_ScreenWidth%
scrY = %A_ScreenHeight%
 
IniWrite, 1, %GameCfg%, misc, windowed
 
if (scrX >= GameWidth*4 and scrY >= GameHeight*4) {
  IniWrite, StdScale4, %GameCfg%, misc, gfxfilter
  }
else if (scrX >= GameWidth*3 and scrY >= GameHeight*3) {
  IniWrite, StdScale3, %GameCfg%, misc, gfxfilter 
  }
else if (scrX >= GameWidth*2 and scrY >= GameHeight*2) {
  IniWrite, StdScale2, %GameCfg%, misc, gfxfilter 
  }
else {
  IniWrite, None, %GameCfg%, misc, gfxfilter 
  }
 
WinHide ahk_class Shell_TrayWnd
WinHide Start ahk_class Button 
 
Gui, -Caption +ToolWindow
Gui, Color, 0
Gui, Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE    
 
Run, %GameExe%, , , OutputVarPID
WinWait, ahk_pid %OutputVarPID%
 
WinSet, Style, -0xC00000, ahk_pid %OutputVarPID%
 
Gui, 2: +AlwaysOnTop -Caption +ToolWindow                                        
Gui, 2: Color, 0            
Gui, 2: Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE   
Sleep, 10
Gui, 2:Destroy
 
WinWaitActive, ahk_pid %OutputVarPID%
MouseMove, %GameWidth% / 2, %GameHeight% / 2
checko = 1
 
While Winexist("ahk_pid" . OutputVarPID)
{
  if !WinActive("ahk_pid" . OutputVarPID) and !WinActive("HSHIDE")
  { 
    if (checko=1)
    {
      WinShow ahk_class Shell_TrayWnd
      WinShow Start ahk_class Button
      checko = 0
    }
  }
  if WinActive("ahk_pid" . OutputVarPID) or WinActive("HSHIDE")
  {
    if (checko=0)
    {
      WinHide ahk_class Shell_TrayWnd
      WinHide Start ahk_class Button 
      Gui, -Caption +ToolWindow                                        
      Gui, Color, 0                                                                               
      Gui, Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE      
      Gui, 2: +AlwaysOnTop -Caption +ToolWindow                                        
      Gui, 2: Color, 0                                                                                 
      Gui, 2: Show, x0 y0 h%A_ScreenHeight% w%A_ScreenWidth%, HSHIDE
      WinActivate, ahk_pid %OutputVarPID%
      WinWaitActive, ahk_pid %OutputVarPID%
      Gui, 2:Destroy 
      checko = 1
    }
  }
  IfWinActive, HSHIDE
  {
    WinActivate, ahk_pid %OutputVarPID%
  }
  IfWinNotExist, ahk_pid %OutputVarPID%
  {
  WinShow ahk_class Shell_TrayWnd
  WinShow Start ahk_class Button
  ExitApp
  }    
}
 
WinShow ahk_class Shell_TrayWnd
WinShow Start ahk_class Button
ExitApp


3. Alter the first four lines so that they match the game's native resolution and exe/cfg filenames.
If you want to put the game files in a subfolder (might be a good idea so the launcher is the first thing the user sees) you can do something like "GameExe = gamedata/Game.exe" and "GameCfg = gamedata/acsetup.cfg"

3. If this is just for personal use, you can simply double click the .ahk file and it will run.

4. If you want to create a launcher .exe, run Ahk2Exe.exe in your AutohotKey install's Compiler subfolder. Select the ahk, output exe, pick a custom ico, and Convert!

Hooray!

This is my first AutoHotkey script, I've only tested it on my desktop and laptop computers, single monitor setup, in Windows 7. It only changes the "run in a window" and graphics filter settings in the game's setup, so some other settings might conflict.
Please, let me know if it doesn't work or if I goofed it up somehow!

EDIT: Simplified version taking advantage of Custom Resolution Build.
#13
http://www.kickstarter.com/projects/66710809/double-fine-adventure

Awesome! Look at all the money it's pulled already. People love Double Fine.
There are no details about the game itself, but it does specifically say it would be a point and click, though one with a small team and what seems like a short production period. Still, it's been way too long since Schafer designed an adventure game, so this is exciting. I really hope it pans out.
#14
Does anyone else feel that the current graphical setup for AGS games is somewhat... archaic?

I don't suggest removing any options or capabilities, but I think the default presentation of a game oughta be this:

NOT "fullscreen" in the sense that it alters your monitor's current resolution, but rather a black, maximized, window devoid of title-bar and corner icons.
Within this black void would be the game's screen, which automatically sets to 2x, 3x, 4x, 5x depending on what will fit in the monitor's current resolution. Too big for your comfort? Luckily you can press Ctrl-Alt-Minus or Ctrl-Alt-Plus to shift through different levels of magnification, ala ScummVM. Want to be able to see Windows again? Alt-Enter will toggle away the blackness back to a regular window and let you drag the game around to your heart's content.

Traditional "fullscreen" mode seems to be increasingly problematic as LCD monitors gain favor. There are now so many different brands of monitors with their own quirks and native resolutions, there's no way to release a game designed for full-screen immersion without a large percentage of players experiencing blurry interpolation, stretched out aspect ratio, or a simple error preventing fullscreen altogether.

The player shouldn't have to muck around with different checkboxes and graphics drivers that may or may not even work, just to achieve a graphical treatment that's easy on their eyes.

(P.S. I'm not a programmer and I'm clueless about how difficult this sort of feature would be to add, so please smack me down if you must. I've also been pretty absent from the forums for years, so I'm sorry if there's already be a similar discussion before.)


tl;dr: Windowed mode is ugly. Fullscreen mode is flaky. It should be more like DOSbox's fullscreen, with the on-the-fly key commands of ScummVM.
#15
Is there a way to disable the "text follows the character" aspect of the SayBackground function when the character is walking? In LucasArts games if you walk away while the character's talking the text stays put, making it easier to read.
#16
General Discussion / I have released a new CD.
Tue 23/03/2004 23:57:28
Mind if I plug it? Yay.

http://www.eviltrailmix.com/lemondemon/javabean.html
The pitch is all there.

I can probably do overseas shipping too, if it comes to that.

If you decide to buy it, I appreciate it very very much. Thanks!
#17
This week's theme: Experimental music.

Let your imagination run wild, as long as it doesn't sound remotely traditional. Stay away from verse/chorus structures, consistent tempos, etc. Please DO go crazy with weird synths, sound effects, and general strangeness. The more complicated and bizarre the better. Create something that you'd never hear on the radio in a million years.
If you want, look through an image library like Corbis and find an image you like. Try and illustrate that image with your music.

No size, length, or format restrictions.

The winner will be chosen based on creativity.  :)
#18
General Discussion / DVD player software.
Sat 04/10/2003 19:51:44
This is a very simple question which I'm having a hard time finding on my own.
Where is there a simple, freeware DVD player program that can take screencaps?
That's all I wanna know. So far I have some program that expired, another program that only allows screencaps for AVIs and stuff, and another which doesn't seem to play DVDs at all like I thought it would. Grr.
#19
I think this has been discussed before, but I'm not sure if it got anywhere and I couldn't dig it up with the search.

Anyway, let's say I put something like this in my global script's repeatedly_execute:

if (GetMIDIPosition()==32) SeekMIDIPosition(24);

or something like that. That would manually loop a portion of the MIDI file playing, for one effect or another.
However, if the MIDI position happens to pass 32 while a blocking event is occuring (like a character talking) then it doesn't have a chance to loop back!

Now, if I understand the way AGS works correctly, during every game loop, it runs through all the scripts, updates the graphics, etc. When a blocking function is called, then it stops reading the scripts and focuses on doing only certain things, such as animating a character and displaying text, or whatnot.

For special cases where you need something to continue happening even when a blocking function is called.

repeatedly_execute_ex ()

or something. It works just like the normal repeatedly_execute, only it doesn't get skipped over during blocking functions. Would that work? I think that as long as you don't use any blocking functions within it, it would work ok.
Any thoughts?
#20
http://www.eviltrailmix.com/presidents.html

Just a little something I whipped up. It's not exactly intelligent historical political commentary. It's semitelligent historical political dysentery.
And it's all true.
SMF spam blocked by CleanTalk