Show Posts

You can view here all posts made by this member. Note that you can only see posts made in areas to which you currently have access.

Topics - Gilbert

Pages: 1 2 3 [4]
General Discussion / @CJ: forum fix
« on: 16 Nov 2004, 08:13 »
I just noticed that when we lock a thread in the competition forum, we don't see the message "this activity has ended. thank you for participating blah bla bla..." anymore, will this be fixed?

What is a Turtlemop 2sday?

Turtlemopping isn't drawing a completely new turtle -- It's editing turtles to create a new robot, such as editing one turtle or combining several turtles.

Also, you don't have to specifically use Turtlemop -- Pain Dope Pro, M$Pain, or any other programs can be used.

See this link:

And for other examples, see here:

The two above websites should give a fair idea of what is involved.


This week's topic:
Olympic Adventures!

Just turtlemop a turtle of say, someone playing some sports game, or getting a medal, etc. to contain some adventure game/ags elements (like turtlemopping an AGSer or Bobbin into it, or making Hurdles a quest to pick up chocobars from the ground, say for example), as long as it's sports related with adventure game/ags elements.

Thanks to the hairy pantless Greeks for letting me steal borrow this idea from the International games currently being played.

Happy turtlemopping!

Well because of some you-know-why reasons, I decided to end the last competition and start a new one.
Read: I wasn't the winner (there was no winner last time, I didn't even enter the last one), I just start a new one to let things move on.

This week's topic:

A Fruit
Resolution: Not bigger than 50x50
Colours: unrestricted

You may say, "WHA7?2? A fruit? That's uncreative!"
If you really said that then it's you being uncreative, by a fruit it can mean many things, as far as your creative minds go.
For example, it can be an ordinary fruit, like a pineapple (well that's boring of course), but you can also make some non-existing type of fruits, like a chocolate melon (this is just an uncreational example), or even if you drew an ordinary fruit, you can make it special like an apple with wings (well it isn't that special I know).

So the topic is quite open, as long as you can convince ME (read) that it can be regarded as a fruit, which can be suggested by the picture itself or via some small descriptions.

Note also that since this competition is not Photoshop Phriday,  this time the rule is strict (in CAPS!):
Drawing with reference photos or tracing over photos are, however, allowed (as I don't process the ability to tell the difference :P ).

Note also that the result will be judged in this order:
1. Whether the creation sticks to the rules.
2. Creativity.
3. Skill.
4. Amount of $$$ you will pay me.

So it's most important that you follow the rules, unless under very, very special circumstances (like free pr0ns maybe) that I may take point 2 and point 3 for advance. Note also that if you want to bribe me to win it, you gotta be rich as money only coutns as the last point of judgement.

Happy Spriting!

Currently, you can import colour slots and export palette to and from PCX files in the editor.
I think it's good if you can do the same for 256 colour BMPs too, because BMP are supported format for BG and sprites already. Enabling the use of BMP for the palette can save people who use mainly BMP for sprites/BGs a bit of work.

OK, here is the problem, I just noticed that when you import animating backgrounds (under 256 colours), if you checked both "Use exact palette slots" and "Share palette with main background" checkboxes the effect was not as expected, that the content of the imported frame was modified to "match the original colours" of the image file. So it's not exact slots import as expected (for example when I draw my graphics I always changed colour slot#0 to pink for some reasons, which I know will become black when imported, but if I imported a animating frame with the two checkboxes checked, since pixels drawn with colour #0 were pink in the original image, the editor messed it up by subsitute these pixels with a "close colour", which is not the slot #0 black as expected).

Now that causes problems, as I'll always use palette effects, so the imported graphics must be intact/untouched regarding their slot indices. If I checked only "Use exact palette slots", the import was exact, but now each frame would has its own palette, it then causes problem, for example:
The bg is animating, with 2 frames:
- Current frame is #0
- slot #250 is originally green
- I changed slot #250 in-game to red
- Current frame is #1
- Since frame 1 has its own palette, and is not affected by last change, so slot #250 is still green
- Current frame is #0
- when the animation got back to this frame, the engine changes the palette BACK to the ORIGINAL, so slot #250 is green, losing the changes that I made

So what I suggest is that if both checkboxes are checked the frames must be imported untouched (exact palette), don't care about the colours of the slots, just discard them. (I know there're some workarounds at the moment, but it's better if this problem is fixed).

I think I have another problem but now I have forgotten about it completely so... :P

Advanced Technical Forum / Minor mistakes in document?
« on: 11 May 2004, 03:07 »
When I checked techinfo.txt from docs folder, about the palette file format:
Each of the colour values is an unsigned byte ranging from 0 (black) to 255
(full intensity).

But when I saved a palette as .PAL file with AGSedit, seems that the range is the 0-63 one. So there seems to be some inconsistency (unless that format mentioned in the document wasn't about the output format in AGSedit, but some other format it accepts, like standard PSP .PAL files, etc., but then it'll be a bit misleading).

P.S. I'm checking with V2.6SP1.

In memorial (hehe ;D ) of the original activity started by those hairy Greeks, this time we have a comic strip that was drawn, not just a combination of unrelated pictures:

Like in the original game, there was actually an "original" story for the strip (it's lame anyways), and I know, the current strip may not lead to much inspirations of captions much different from the original. But I DON'T BLOODY CARE!1!
It's more favourable if you have a creative mind and can think of real funny stuffs to add to it.

Hmmm I don't know if there're easy ways to do this currently but seems that similar function was not provided with V2.6SP1 (with which I had to do some messy scriptings to get past this).

The problem is this:
When a game is "not in control" (eg. while running blocking functions) the function on_key_pressed() (either global or room ones) won't be executed, this is okay and is the expected behaviour.

However if the player pressed a key just before the (series of) blocking sequence (eg. a cutscene), it's possible that the key pressed got recognized, but the on_key_pressed() function would be execute afterwards, which may not be desired sometimes. (Eg. In a game, the player accidentally pressed TAB before a cutscene started, it's possible that the inventory GUI would pop up after the cutscene, which is not always expected).

So, I suggest adding a new function: FlushKeyPressed(), which the game designers can put it in wherever suitable places (eg. at the end of a long animation), which will clear the currently pressed key, to prevent the on_key_pressed() function triggered for some reasons.

EDIT: Oops! How f00lish I am! I clicked the wrong forum and didn't notice. Please move this to the tech forum.

Actually I think these things had been there for a long while, thay're not new to the current beta, so I'll point them out here:

1. Seems that the keyboard shortcut for Interaction (Ctrl-I) and Edit Script (Ctrl-E) don't work for Room settings screen (at least for me, in 2 different computers).

2. Can you make it so the sprite import dialog remember whether the option "Remaps colour to game palette" was checked the last time you use it? Because I always import my sprites with exact palette, it's REAL annoying that I have to uncheck that checkbox manually everytime I have to import a new sprite, if I forgot to check it and imported a couple of sprites, I had to reimport them again. :P

3. I just noticed that even if  "Remaps colour to game palette" is unchecked, it still remaps colours not set for sprites, so it's not exact palette import. To do exact palette import for sprites you need to check also the "Lock sprites to current room" option, this is not really that important (as most of the time the sprites should be painted only with the sprite colours anyways), but it's a bit confusing that it took me a while to figure out how to import a sprite without any modifications if it somehow uses some of the "room" colours.

4. I just noticed that if you set the "start" parameter larger than the "end" one in CyclePalette(), the palette effect won't run. Maybe it's a good idea to make the function that if "start">"end", the slots cycle in the other direction (handy to do for example transport belts that can move in both direction, of course that isn't hard to script either).

Okay, I start this thread because of the discussions from this thread, I had read the FAQ a bit (I didn't read it thoroughly, just read the parts that I thought may be outdated and compared them with changes.txt and the latest stable version V2.6sp1), seeing that some of the infos there are already outdated, and I don't want to continue the discussions there as it's a bit offtopic.

NOTE: I'll post multiple posts here in this thread divided according to sections in the FAQ, to avoid each of the posts being too long to read.


Point 4

(a) Near the end of the current text:
"...Just set the GUI so that it never appears (Set it to "Script only"), or simply never refer to the inventory item. If you can't delete it, ignore it."
Note that in current version of AGS, the mode "Script only" had its name change to "Popup Modal" (actually I think there're some changes in behaviour too), so update the text there.

(b) Moreover, actually you can delete GUIs and GUI objects in AGSEDIT now, I suggest adding the following text (or incorporate it into the original contents):
You can now delete GUIs in the editor, just click the "Delete this GUI" button. WARNING: You must be VERY CAREFUL in doing this, as items in AGS are referenced by number, if you delete a GUI which is not the last in the list, it will cause a re-numbering on the ids of teh remaining GUIs, as a result, it is possible that your game's script will refer to the wrong GUIs or even a non-existing GUI, causing hard-to-track crashes. Fortunately you have a name for each of the GUIs, if you only refer to them with their script names (ie, you didn't type in the EXACT GUI ids in your scripts), this can be fixed just by recompiling all the rooms (Game --> Rebuild all room files) and then re-saving the game.

You can also delete GUI objects in the editor, just select the object and hit the DEL key.
WARNING: You must be EVEN MORE CAREFUL in doing this, because of the same reason mentioned in the "delete GUI" part. UNFORTUNATELY, currently you can't set a name for the GUI objects, so you have to fix your script MANUALLY if you really want to delete a button or a label, etc.

Room objects can also be deleted by right-clicking now.
WARNING: I'm too lazy to type, this point is essentially the same as in the "deleting GUI objects" part.

For fonts, characters, views, etc., just reuse them as advised above or just leave them alone, they don't contribute much to file size anyways.

Note that deleting stuffs is only meant to be used by experienced users, and remember to BACKUP your game before doing any of such hazardous acts!

Point 5

Add this:
You can now revert to the default fonts quickly by clicking the "Revert to defaults" button in the editor, it will revert Font 0, 1 and 2 back to their original stage, and DELETE ALL THE OTHER FONTS.
WARNING: As Fonts with #>2 will be deleted using this function, make sure you didn't refer to fonts other than 0, 1 and 2 in your game, or else you may need to fix hard-to-track crashes yourself.

Point 7

Add this:
Heh just kidding, actually the winsetup.exe is useful, as most people just playing AGS games may not know the "game.exe --setup" trick, and because the batch file method won't work for some WIN-NT based systems, and the shortcut method is not practical as you shouldn't force the player to install your game in some fixed folder. So, please include winsetup.exe (or whatever it's renamed) when you distribute your game.

(I'm still typing, more to continue...)

Sorry, I may not have checked thoroughly, but seems that there aren't much error handling when writting to a file (with FileWrite() or FileWriteInt() functions).

I'm not sure but I think the game will crash if there's a read/write error when dealing with external files (like diskfull while appending to a file).

My suggestion is that the FileWrite[Int]() functions return 0 if sucessful and nonzero if there's an erroe (if it hadn't been implemented already, but nothing was written in the manual about it, so...)

It'll be good if the FileRead functions can have this kind of error handling too.

Okay, CJ, I consider this a minor bug, if this is a known problem and was already refered to somewhere just kick me. ;D

Basically the problem is that in the GUI, INV,... etc tabs of AGSEdit, when you hit the "edit script" button, (I think) the editor just search from the global script the first occurance for the function name, (for example in GUI tab, that searches for interface_click), and displays the content that follows, problem arises if the search text appears before the real declarition of the function.

You may try out this to confirm the problem, load up the game, go to GUI tab and hit "edit script", nothing's there, but the function was there in the global script, that's because the text "interface_click" appeared in a comment inside on_mouse_click, which was placed earlier than interface_click.

Worst of all, it also affect the game, probably caused by some problem in compiling the script, that for example some of the parameters won't get passed correctly, for example in that example on GUI5, the variable button always equals 1, no matter which part you click on the GUI.

You can read the original thread in full detail here:

This had been discussed a bit on, and I think I'll start a new thread for it now.

Since the releases of the V2.57 betas, you can now dynamically  create new sprites in game via loading external graphic files or screenshots saved in savegame files. This sprites can be created and destroyed dynamically in game, and have their sprite slot numbers assigned fuzzily (like the overlays) and are not controlled by the sprite cache buffer, any addition of such kind of sprites will consume physical memory.

1. Since the Animation Views cannot be dynamically modified currently, those dynamically created sprites cant be used in animated stuffs using Views, so it is not suitable for characters and such, only suitable for overlays, objects, or raw draw sprites on backgrounds.
2. Currently no way to set whether the created sprite is hires or not.

Possible solution:
1. First, since we can now have 2 types of sprites in game, those controlled by sprite cache and those which are not ('dynamic' ones), I suggest that one more option can be added to sprites in the sprite manager of AGSEdit, the "Can be modified in game" checkbox option, when a sprite has this option checked, it's not controlled by the sprite cache in game, so it MUST be loaded into physical memory when the game starts (so it will consume much memory if there're many/large such sprites, but that's the responsibility of the game creator himself to manage this), then these sprites can have their contents dynamically changed in game. The advantage of this is that now their sprite slot numbers are predefined and static, thus can be used in Views, and that you can set in AGSEdit already whether they are hires or not.

2. Additionally extending the ability of the raw functions to draw on sprites can be useful (eg making custom character graphics). Suggested new functions:

CreateBlankSprite(int width, int height, int fillcolour, int hires)
Create a blank sprite of dimension width * height filled with fillcolour (-1 for transparent) which can be drawn on, and if hires is non-zero, the sprite is created as high res ( (2*width) * (2*height) screen pixels), returns the slot number of the newly created sprite if successful, returns -1 if failed.

Basically make most of the BG Raw Draw functions work for dynamically assigned sprites (ie., those created by LoadImageFile(), LoadSaveSlotScreenshot(), CreateBlankSprite() or set to be editable in the sprite manager, attempt to draw to other "static" sprites would cause an error). Considerations are:
(a) the coordinates used in these functions are pixel perfect according to the sprite content itself, so you can draw hires graphics on hires sprites, say for example. If in case the functions draw in areas outside of the legal sprite size, the results are cropped.
(b) pass colour as -1 to draw transparent colour.

Suggestion 2 may be tricky to implement, but I think even if only 1 was implemented, it can still be useful.

This time: Thing under your bed

So, this time there won't be much restriction, just draw whatever things that came into your mind, that you think would be under your own beds, it can be a scary monster, a pr0n magazine, a video game console, a dead body, a vibrat... whatever...

So specs:
Size: Not larger than 100x100
Colours: unlimited

Marks would be added for those who have better imaginations, skill may coutn too, but that goes second. Special marks would be given for those who can associate somehow with the word "corn".

I think it's not a revolutionary topic, but who cares? Not revolutionary doesn't mean it would be lack of imaginations.

Ok, this week:

AGS Sea Monster

What does that mean? Basically it means that you think of a sea monster which is AGS related, how it's related to AGS is not important, as long as it composes of feature(s) recognizable by AGSers that it's in some sense relevant to AGS. For example you can draw a giant squid carrying a blue cup, or a fish with Larry Vales' head, or a crab with m0ds' face on its back, etc. So it can be anything as long as 1. it's related to AGS (no matter to AGS community, the AGS engine, AGS games, etc.) and that you can convince yourself that it's a sea monster.

Here comes the specs:
Size: Not more than 100x100 pixels
(note that means it's horizontal res. need to be <=100 and same goes to the vertical res. I don't want to limit it to exact size because that's not that important anyway, as when your sprites are smaller than the size, you can always add empty space to it already, so you don't need to do this this time.)
Colour: Unlimited
(As different people like to use different tools for their artwork, I don't want to limit the number of colours now, as previous experience told me that even if you limit the colour depth, someone can just draw a say photorealistic sprite in true colour and dither it into lower colour depth anyway, which made the colour limit pointless, so just use as many colours as you want.)

Hints & Tips / Pixely Pete
« on: 02 Jun 2003, 02:52 »
Hmmm it's an old game (an hour game or a MAGS game I guess). I'm currently playing the unplayed old AGS games scattered around in my harddisk, and I'm stuck this Pexely Pete game (I forget the full title, it's about breaking into a mad scientist's house and such):
Spoiler: ShowHide

I'd given the leg to the scientist, now I have teh cheese, a toolbox and the rope, what should I do next? There didn't seem to be anything in the mouse hole...

This time:
Draw a tilable pattern containing an adventure game character in a non-adventure game environment (eg. platform game, etc).

1. The Size must be 40 x 40 pixels
2. No limitation on colours

See an example here:

And see how it's tilable:

Note the period had been extended, that's just because of the Easter holiday and my browser at home isn't really friendly with the boards here (or I'm just lazy...) :p

Pages: 1 2 3 [4]