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

#41
I'm working on a new interface for my MAGS game, but I'm coming up with a bit of trouble.

I'm trying for a Discworld style interface, where you can pick up and put down inventory items in your inventory. I can get it to work partway, that is, I can make the item be put down when you're hovering over the space of the inventory item you're carrying. I can't make it return the inventory item when it's over a null area, though. Here's the code I'm using:

Code: AGS

// In my on_mouse_click function.
else if (button == eMouseLeftInv)
  {
    if (GUIControl.GetAtScreenXY (mouse.x, mouse.y) == invInventory)
      {
        InventoryItem* item =  InventoryItem.GetAtScreenXY (mouse.x, mouse.y);
        if (player.ActiveInventory != null) 
        {
          player.ActiveInventory.Graphic = gItem.BackgroundGraphic;
          if (item == player.ActiveInventory || item == null) //If the item you're over is the (now empty) active inventory, or nothing at all
          {
            ReturnInventory (); //Return the inventory item to it's place in the window.
          }
        }
        else //Grab a new inventory item.
        {
        player.ActiveInventory = item;
        gItem.BackgroundGraphic = item.CursorGraphic;
        item.Graphic = 32;
        if (mouse.x - 16 > 0 ) gItem.X = mouse.x - 16;
        if (mouse.y - 10 > 0 ) gItem.Y = mouse.y - 10;
        gItem.Visible = true;
        itemvisible = true;
        }
      }
  }



And on an unrelated note, how would I be able to get a wavy effect on the background image (and some of the objects) with any alacrity, ala the line offset of the Genesis? You can see it in the Down the Tubes level of Earthworm Jim, or, I think, when you're underwater in Sonic 3. I'm not sure how I would make a sine wave distortion with the image. I tried modifying the Underwater module, but it just doesn't give the right effect. Would I need to chop the image up into lines (using the crop functions) and draw them onto a new frame at varying offsets but the same Y coords? Is that slow?
#42
I'm trying to do another interface for my game, as switching to the keyboard becomes a bit cumbersome even when you are switching playstyles and I want to throw the player a bit of a bone.

I know how to get the mouse cursor if it's in one of four segments around the screen (it's easy - you just check whether the player's screen coords are above or below the mouse.x and y.) but I'm at a loss as to how to do 8 segments.


Here's a crude depiction of what I'm trying to achieve. Is there a math-only way to do this? The player will be walking across the screen and could be at any arbitrary point on it, and I'm just not sure how to find this. I was thinking I could make an image and reference a pixel on that (by transposing it to an array - not using GetPixel, which is slow as hell) to see which segment the player is in, but that seems really wasteful, memory wise.

Any ideas?
#43
I've been thinking about the kinds of compression AGS uses in it's sprites and backgrounds, and potentially the other data it creates to pack into it's EXE and it got me to thinking - is it really necessary to change the compression from the old RLE algorithm to something better?

Now, don't get me wrong, I love tiny filesizes, it's one of the greatest things to be able to be efficient in saving space. As time goes on, the more people are going to use high resolution, high bit depth graphics, and RLE just won't cut it for that kind of thing, resulting in games that are almost a gigabyte just through inefficient storage alone. I know people have posted on the forum saying "Is it bad to use the higher resolutions? Will my game be too big?".

Well, hard drives are huge now - and the place we need efficient compression the most is downloading the files. And we can just ZIP or RAR or 7Z or ARC or ARJ them up, and all that inefficiency will drop as it's being compressed into an archive, and people can then download the most efficient archive, saving on bandwidth and online filespace, but not their hard drive space, as it will uncompress into a huge behemoth again.

But still, something about it rubs me the wrong way. When AGS first implemented compression, I believe LZW was still patented, and PNG compression was new and relatively unheard of. Couple that with the low resolution, low colour nature of the graphics being produced for AGS games, and there really was no need for better compression. But now that we might well be targetting mobile devices, maybe better compression could help the Android/iPhone/Weird Gizmo market? They, unlike PCs, have limited storage space, orders of magnitude less. (Like maybe 2-32GB instead of terabytes.)

One thing that concerns me when thinking about compression is speed - if we, for example, implemented PNG (or any DEFLATE based compression algorithm) instead of RLE, how much slower would AGS load resources? Would we be able to compress the compiled script resources AGS uses so that it's script data doesn't take up massive amounts of space - without hindering the performance of the game engine as a whole? What could we compress without sacrificing speed, and how?

This, compared to more pressing issues, I felt quite low priority (bordering on pipe dream), but it's still interesting to discuss, looking forward.

How do you feel about the file sizes of AGS games?
#44
I'm trying to make a way of rendering indiscriminate error messages onto the screen, like this: Example here, but typed over the top of the game's screen, with a black background. If you've ever played a DOS game and it's suddenly booted you to the DOS prompt at 320x200 and printed a whole load of bytecodes at you written directly over the top of the video buffer, that's exactly what I'm going for.

So far I've tried:
Code: AGS
  function Print_ErrorText (String text, int x, int y)
{
  DrawingSurface *surface = Room.GetDrawingSurfaceForBackground(); // I'm just testing here, obviously it won't work with characters over the top or with scrolling rooms. Probably should go with making one from a Screenshot and putting it on an Overlay.
  surface.DrawingColor = 255;  // True Black
  surface.DrawRectangle (x, y, GetTextWidth (text, eFontMetaverseText) + 1,  GetTextHeight (text,eFontMetaverseText, GetTextWidth (text,eFontMetaverseText) + 1));
  surface.DrawingColor = 15; // True White
  surface.DrawString (x, y, eFontMetaverseText, text);
  surface.Release ();
}

But it doesn't seem to work right at all, and I have to manually specify where I want the text to go. Ideally, I'd want to be able to just print a bunch of garbage to the screen line by line with it wrapping round and leaving the underlying image intact. But the black boxes I draw don't line up with the text I've drawn /at all/. I'm not sure what I'm doing wrong here - the boxes and the text will misalign vertically and often the boxes will be twice to three times the size of the text (again, vertically only). I've tried to fix it several times but every time it just comes out.... wrong. I'm probably being stupid and missing something simple, but I probably need a fresh pair of eyes to look at it.

Thankyou for the help!
#45
I've been adding some code to my game recently, and after I completed it, I noticed that the game's filesize has jumped from 9mb to 40mb for no discernable reason. It compresses down to 3mb as normal, but the uncompressed filesize is amazingly huge. I looked at it in a hex editor, it seems to have freaked out after writing function names from a module that I had deleted (!!!) and wrote about 40 megabytes of 0s after it. After reimporting it, it managed to compile a working executable that was 1.70mb, and then was 40mb again after that. I'm not sure what I'm supposed to do, really, since I can't well restart my game project, and I don't see what I'm doing wrong.

Why is AGS writing a whole lot of pointless garbage in my EXE?
#46
I'm currently trying to do some walkcycles for one of the characters in my game, but I'm having a little trouble, owing to his odd stride.
[imgzoom]https://dl.dropbox.com/u/50882197/temp/loopwkfd.gif[/imgzoom]
Here is his front view. The main movement is in the hips, and he waddles more than strides.

[imgzoom]https://dl.dropbox.com/u/50882197/temp/loopwkside.gif[/imgzoom]
I can't seem to replicate it in a side view, however, and it looks absolutely awful. And I'm not even sure where to begin doing it in a rear view. Does anyone have any tips regarding making animation look consistent and characterful across all the cardinal directions? What am I doing wrong here that makes the side view look so stilted and unsmooth compared to the front view?

Thankyou in advance :)
#47
I've been working on a few things for my game, and one of them is a Legend of Kyrandialike interface for one of the characters. I thought it would suit him more than any other interface. But is it intuitive? Can you use it without going mad?

You can get it HERE

It's a really rudimentary interface, left click picks something up, put it in your inventory slots, combine them together in the combination menu. nevermind that the combination doesn't currently make sense, but ID Card + Skateboard will hopefully equal Green Chip. You can also drop items by clicking on empty space.

Is it aesthetically pleasing? Would you solve a few puzzles with this interface? What would you improve?
#48
I'm trying to put a semitransparent image behind my text windows, but it's not working out. I stole the code from my previous game, which appeared to work at least a little, but this time, no luck at all. GetTextWidth seems to choke on really short or multiline images.

Code: AGS
function DisplayText (String text)
{
  DynamicSprite* sGuiBG = DynamicSprite.Create (320, 200, false);
  int width = 10+ GetTextWidth (text, 0);
  if (width > 256) width = 256; // the fixed width. change this value as preferred
  int height = GetTextHeight(text, 0, width);
  sGuiBG.ColouriseArea ((System.ScreenWidth - width) / 2, (System.ScreenHeight - height) / 2, width, height);
  Overlay* oGuiBG = Overlay.CreateGraphical ((System.ScreenWidth - width) / 2, (System.ScreenHeight - height) / 2, sGuiBG.Graphic, true);
  DisplayAt((System.ScreenWidth - width) / 2, (System.ScreenHeight - height) / 2, width, text);
  oGuiBG.Remove ();
  sGuiBG.Delete ();
}


Produces:

(I know it's a little unreadable, I'm working on that too, but that's out of the scope of this question)

I actually don't know how to make a background plate work for a vanilla display command, but I'd like to, as well as one for a DisplayAt, so it's more flexible. I'm a little over my head here, I think.
#49

[imgzoom]https://dl.dropbox.com/u/50882197/temp/nell_talksprite_wip.PNG[/imgzoom]

I'm currently spriting some online avatars for some of the characters, and I'm having a bit of trouble with this girl's hair. It's supposed to be crazy punk hair, and it looked good on paper, but I just can't get it to look right. It looks kind of flat, and I don't like that. But since it's crazy hair, I'm not sure where to put the highlights and lowlights - my usual tack for it isn't working as well as I'd like it to.

Any suggestions?
#50
I've run into an odd problem when working with my game. In every room, my walking code runs fine, but on this one room, the player character will walk towards a certain spot and not get themselves out of it, no matter how fervently I click
Here is the walkable area map with the position with which the character sticks itself. Why is the character gravitating towards this spot and walking away from it's target? It's all very mysterious, but again, doesn't happen in any room other than this one. I tried my best to break the pathfinding in other rooms but it's just this one that has it. Details could be: I've turned off automatic walking, and done "player.Walk (mouse.x,mouse.y)" in it's stead on on_mouse_click. It's frustrating. Will I have to scrap this room and rebuild it?

Secondly, I've been wracking my brains for a way to implement a certain Legend of Kyrandiaesque inventory system, and so far have had a lot of luck with it. Everything works well, but I'm not satisfied with the way the character drops items. I would like to make it so that it plays something like this:
[imgzoom]https://dl.dropbox.com/u/50882197/throw_object.PNG[/imgzoom]
In which the player clicks on empty space and the character throws it, how far depending on how far away the character is from the target click. Cyan being a walkable area, so that the player doesn't throw items into ravines and stuff. It's wholly unnecessary, but very in-character. I'm just not sure how to make a thrown object arc like that so that it comes to rest roughly around the mouse pointer. I'm not a very good programmer at all!
#51
Critics' Lounge / Improving some Sprites
Sun 07/10/2012 05:21:45
So here I am, painting a background, and I notice that my protagonist's sprite hasn't been updated since I released the last version of my game in 2009. Obviously, it now looks rubbish compared to the other sprites, so I have to fix that.

[imgzoom]https://dl.dropbox.com/u/50882197/newjakobsprites.PNG[/imgzoom]
New on top, old on bottom.

I'm trying to get him to look more consistent between poses, so that he doesn't suddenly look like a completely different character if he turns around. Also, I noticed his earfins were way too big in proportion to his head, and his head was awful. So I fixed it, and gave him the suggestion of buck teeth.

Am I going in the right direction with this? Are there some anatomical or balance errors that I'm totally missing? How do I shape his snout in the front view? It is complete mystery to me.

For reference, some concept art I made of him. Ignore the hair, it's the way it is on the sprite for ease of animation:


As always, thank you in advance. :)
#52
Project:
Death Wore Endless Feathers - A Cartoon Cyberpunk Adventure Game

Details:
A 90s retropunk adventure game about a lazy hacker and his friends working against The Man. GiP page HERE. It is a 320x200, 8 bit game.

Positions Available:
Currently, I only have one open position I need.

Programmer - I need someone familiar with the AGS plugin system to create a couple of plugins. One being a smacker video player, and the other a modified MOD player. I have very little actual C++ experience, and though I would have loved to create this plugins myself, I don't think I'd be able to do it in any reasonable timeframe and still get my game done.

Smacker Player: I need someone to strip down FFMPEG and use their smacker decoder to create something I can use in AGS. Since my game is in 8bit, I can't use the built in video player (and using FLICs would produce soundless 48mb monstrosities, instead of neat 2mb files). Having it render on the background layer (as a "replacement" background image) would be ideal. It shouldn't be too hard to control AGS's palette from the Smacker plugin (or likewise have the smacker plugin use AGS's palette.) This is very important, as I would love to have animated cutscenes in my game. Someone is working on this.

MOD player: I also need someone to modify a tracker library so that I have in-AGS control of the volume of each of the playable channels, and the speed of the music. I have attempted this before with MIKMOD to no success (I only managed to switch on and off channels, not adjust their individual volumes), so I'm hoping someone more experienced than me would be able to help me with this.

Deadline:
I'm looking to have the prototype finished by christmas, and all the relevant placeholders put in place by then.

Comments:
If you're interested, contact me via PM, or get ahold of me via my email: khatoblepas@googlemail.com. I can't provide any monetary payment, but I could assist with a project artwise if you wish. Thankyou for reading. :)
#53
I'm back in the saddle after making my animated film, and one thing that I'm missing from my game is full motion video. I'm a competent animator, and I can work my way around after effects, so producing animated cutscenes is no problem. However, as my game is in 8bit and not 16bit (a deliberate choice, a lot of effects in my game depend on it being 8bit - and besides, I've created a load of assets anyway so switching to 16bit is not an attractive option.) I can't use the built in PlayVideo command, and using FLC files will lead to my game's size being bloated up beyond any measure and be difficult to sync a soundtrack to. There is another option for me, but it involves the deadly black arts of plugins. I've done a small amount of C++ in the past, and I've written a simple plugin before (to use mikmod instead of DUMB for MOD music, mikmod had bugs in it that stopped individual channels from being manipulated, though, so I didn't continue it.).

The only robust and documented 8bit video codec out there is Smacker, which fortunately for me has an FFMPEG codec. I am a little intimidated trying to write another plugin, though, as my programming prowess has always been really weak. The main thing is getting everything linked together and compiling, rather than the code itself. I'm aware, from reading a couple of tutorials on the matter, that it can be abstracted down a bit and the frame processing can be placed in AGS_PRERENDER (instead of a while loop, like the tutorial says), while the frame itself could probably be either blitted directly to the screen or onto a dynamic sprite. It would be interesting to have a Smacker file play overlaid on the background, so that there is the illusion that the smacker video /is/ the background. I intend to reinstall VC++ and meddle around with this anyway, but if anyone can give me any advice on getting FFMPEG working within the context of AGS, I'd love to hear it. I always get confused around the static linking stage. With Mikmod I just used an external DLL instead, but that doesn't seem too elegant.

As an aside, does anyone know how much faster processing a sprite with GetRawBitMapSurface () is than a GetPixel/PutPixel loop? A few of the graphical effects in my game are depressingly slow with GP/PP, as they rely on checking the pixels directly each loop, which cuts the FPS while they're on screen by about half - something I don't want to happen. If I could open it up a bit so that a sprite can be referenced as an array rather than through AGS the effects should go much, much faster. I'm not sure why that functionality isn't inside AGS itself, but hey, c'est la vie. If I can get that working, I can make effects in my game almost cost-free!
#54
General Discussion / I animated a short film!
Thu 07/06/2012 17:30:43
For the past year, I couldn't work on Death Wore Endless Feathers much, since I was working on this instead!

Mississippi Mud Pie!

The award* winning animated short about an alligator that wants a fish. Animated all on paper by myself, my friend Lara, and a bit by our tutor. It was really fun to animate, and I hope all of you guys enjoy it too! Now it's time to get back to work on my game!

*Best 2D Animated Film (3rd Year Bracket).
#55
Critics' Lounge / Hairstyling Sprites?
Sun 03/06/2012 04:46:25
I'm continuing to work on my game, but I've run into a snag - the hairstyle I intend for a character just isn't working on his sprite, and I'm not sure how to go about doing it. I tried it before, but it just looks like a wig or a Bart Simpson-style unnatural spikes. He is supposed to have short, spikey (perhaps gelled up) hair, but I'm at a loss as to how to make it look -good-, especially on the front and side views. The sprites I got for him have his old hairstyle, which just isn't animatable. So, any advice on how I can apply the hairstyle on the picture to the sprites? And if you find anything totally wrong in the sprites themselves beside that, I'd be glad to hear it, I'm pretty open to fixing things.



Thankyou!
#56
When designing my game, multiple characters is the first thing I want to have in it. The story, told in part by different people with different mindsets and different values.

So when you're playing as them, why should they play entirely the same? I've seen a lot of adventure games do multiple characters with just a small change in what the inventory is, or a reskinning of the GUI. What if the entire way the game played changed depending on who you are? A simple character wouldn't have a complex text parser, and likewise the noir detective wouldn't have a two button interface. A whole new wealth of puzzles could be used, and the player could really get into the mindset of the character by /having/ to think on their terms.

The main concern I have with this is: Would this annoy people? I'm not thinking of having the game be swapping interfaces on you unless it is necessary - and each interface will have it's own discrete section to work in - you wouldn't be switching between interfaces to solve puzzles. How would you implement it so that the player wasn't confused when they switch between characters and interfaces? Is this an idea that would turn you off of a game?
#57
General Discussion / Writing in Videogames
Wed 07/03/2012 13:55:35
So, I'm currently writing my dissertation for my animation degree, and my chosen topic was the interaction of narrative and game mechanics in videogames, since that's a topic that resonates with me.

As part of this, I wanted to get people's opinions on writing within videogames. This forum is particularily good for this, as adventure games are often story-heavy. I am writing about the role of narrative within videogames, and how breaks within the gameplay world and the narrative world can severely negatively impact the experience as a whole. I have referred to Crimes Against Mimesis for some historical perspective in Interactive Fiction, and have contacted some game developers for an insider's perspective, but I need the end consumer's perspective, since if they don't want heavy plot, there is no need to try to integrate it as fervently as they could. No need to supply what you don't have any demand for.

I have a few questions to ask of you all, answer any or all of them if you like, and if you have your own developer's perspective on gameplay/narrative integration, I would love to hear your insight.

1) How important is narrative within a videogame to you?

2) If a game has a poor plot but good gameplay, is that preferable to a game with poor gameplay but a good narrative? Or are both equally important?

3) Have you ever stopped playing a videogame because the narrative was too poor? If so, what was it?

4) How do you feel about gameplay/story segregation? Examples: You dodge a trap in game, and later in a cutscene, the character falls for the same trap. And the inverse, a character suddenly being far more competent in a cutscene than his in-game actions would imply. Should a character be as competent in their actions as the player is?

5) Do you feel that with growing technical abilities in game engines, narratives in games have become more sophisticated as well, and have benefited from a more filmic feel?

6) Do you think that different gameplay styles affect how we view the same plot? For example, rescuing a fair maiden from a dragon's lair, presented in platformer, first person shooter, and point and click adventure game style, with the only differences in the presentation being how the game plays. Dialogue, pacing, and aesthetic remain identical.


I hope to hear from anyone who has any opinion at all, it's all important to me :)
#58
So I wanted to keep my spriting arm fresh, and I had recently discovered that OHRRPGCE is still actively in development. It being my favorite RPG program, I decided to make some OSD sprites.



Walkabout/Standing/Stepping/Attack A/Attack B/Use Item/Hurt/Weak/Dead

So, how are these? Anything I can do to improve them? And most importantly, are they Dennis?
#59
Critics' Lounge / EGA Art! For SCIv0 & Pandas
Tue 05/04/2011 03:19:13
As a stress reliever, I sometimes pixel things in really restrictive video modes. I'm taking a break from DWEF for a while while I focus on other things. In the meantime, I'd like to experiment with SCI, since it has some really interesting restrictions and foibles in it, especially considering it's the only EGA game engine out there. I'd like to make a game in it.

So, I'd like some critique on these pieces, so I can get more into the EGA mindset. I'm not sure whether I'm doing this right. I got all the 16 colours and I love working with them (I'm sure I must be the only person left in the entire world who feels this way).

Character: A sad panda. Emo. He is jaded with everything, sigh. Based on a drawing a friend of mine did, I just had to pixel him. I wanted to keep the design simple and push the "world weary" angle more than the emo fashion angle, which looks rather ugly. I kind of like the no-pupils look to him, as well. It helps make him look less engaged.

I'm thinking the deaths in the game will be based around mild discomfort more than actual death, keeping the dangerous Sierra zietgeist, but making it amplify really stupid stuff instead of killing off the main character.

And an attempt at an SCI background:


And as a bonus, an SCI font based on the Magic Boy credits font.


So, what y'all think?
#60
Been working on an animation for the more action orientated bits of my game (since walking while being chased makes for hilarity, not drama) so here is the main character running as fast as he can (not very):



I don't like the tail, but I don't know how to get a nice sine wave action on it. Anything else I need to fix?

Also, I need some more feedback on this background:

It's a quiet little suburb on the edge of the city, far away from the noise and bustle. The house on the left right (guh, I am a dumb) is the most important part of the scene.
SMF spam blocked by CleanTalk