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 - Monsieur OUXX

#341
Hi all,
It's AGS related but it's not technical --> Here we go :)

Does anyone know where I could find a font suitable for 320*200 but that has a constant width?
Something similar to Courrier New.
The goal is to display things on screen with regular spaces, and it's annoying to have the display ruined when there is a narrower character, such as an 'i'.

Any ideas?
#342
Hi all,

What do you think of this loading screen?

I'm always crap at choosing how much shadow there should be, and how much the fonts should be outlined.



Note: the fruit that appear transparent are components that are not loaded yet.

#343
Hi guys,
Which do you think is the "prettiest" AGS character ever drawn?
- the drawing must be perfect
- the animation must be perfect
- it must be complete (at least 4 walk views, ideally 8, ideally the talk view)
- try to think of 2 characters : the best low-res character and the best hi-res character.
- It shouldn't be a licensed/copyrghted character.

It's really a visual thing, here. It's not about the character's charisma.
#344
Hi all,
I remember that some time ago someone posted a thingy to restart the game in a different resolution.
It was claiming to change the resolution in-game.

I just can't find it anymore.
Anybody has an idea?
#345
If game #1 is running 800*600 and game #2 is running 320*200, can game #2 be run from game #1 using RunAGSGame ?

[EDIT] Has this suggestion been implemented? http://www.adventuregamestudio.co.uk/yabb/index.php?topic=33772.0


OK, my question is silly. The answer is surely "no".
Thanks anyway.
#346
Critics' Lounge / Need testers for modules
Mon 19/04/2010 10:58:44
Hi all,

This thread is intended purely for scripters.

It's all about downloading the modules "File Manager" and "Double-linked lists of Unmanaged structs" (you'll find them in the "Technical forum").

Run them, play with them, and tell me if the results you get match the documentation detailed in each function's header.

Basically, the goal is not to propose enhancements but to make them 99.9% error-prone.

I hate to ask people to do that, but it's because those modules will be an essential fundation to my script and I want to make sure that they're reliable.

#347
Hi all,

What does it do?
Here is a module that allows you to open and close files, and then manage them as "handlers" (actually integer indices).
Plus, I introduced a "non-buffered" opening mode that causes the file to be opened and closed at each writing. It's excellent when you log, because you're sure that the output is logged even if the game crashes shortly after.

Note: it's an actual implementation of my other module "Double-linked lists of unmanaged structs".
I've posted them separately because they both have their own purpose.


Current version:
1.0

Targeted version of AGS
Natively made with AGS 3.x, but can be ported very easily to 2.72 if you re-create the console's ListBox in 2.72.

Download location :
http://sourceforge.net/projects/agsh/files/

Intended audience:
     - Please read the pros and cons compared to monkey_05_06's "Stack" module in the thread devoted to my other module "Double-linked lists of unmanaged structs".
      - The idea is to be able to use Files as in/out parameters, quite quickly.

How to use it?
      - Download the file
      - Open the project. You can run it to see what it does.
      - The file "kernel.txt" contains the same output as the console.
      - Export all scripts and GUIs
      - Re-import the GUI(s)
      - Re-import the scripts and make sure that they're displayed in the same order in your project (it heavily relies on ordered dependencies)
      - If you intend to use the console :
           . Make sure you call AGSH_Console.BindGUI in the 'ongamestart' function
           . Make sure you call AGSH_Console.OnKeyPress in the 'onkeypress' function
           . Make sure you call AGSH_Console.RepeatedlyExecute in the 'repeatedlyexecute' function
      - Run AGSH_FileManager.Reset_WithDependencies in the 'ongamestart' function
      - Use AGSH_FileManager.Open,  AGSH_FileManager.Close,  AGSH_FileManager.WriteRawLine whenever you want.


Note for programers: Programming style of the module
      - It's quite heavy (you'll see it embeds many separate scripts). It's by design, for maintainability (it'll be part of a much bigger project).
      - It adopts AGS' object syntax (struct+methods), but all the methods are static. It's to be consistent with the integer indices system, and also because the very nature of this module does that it should match the "Singleton" design pattern.
      - the functions AGSH_Console.OnKeyPress and AGSH_Console.RepeatedlyExecute are called explicitely from the corresponding functions of the global script; I don't use the default functions inside the module. It's by choice. You may disable the integrated console anyway.
#348
Hi all,

Here is a module that allows you to store an array of unmanaged structs (which can themselves contain pretty much anything, for example Managed object types like the built-in type 'File').

Current version:
1.0

Targeted version of AGS
Natively made with AGS 3.x, but can be ported very easily to 2.72 if you re-create the console's ListBox in 2.72.

Download location :
http://sourceforge.net/projects/agsh/files/

Intended audience:
There are several other modules that allow you to store 'arrays' of objects or variables. For example, you might consider the "Stack" module by Monkey_05_06.

However, the purpose of the present module is completely different. See "Pros and Cons" below.

How to use it?
     - Download the file
     - Open the project. You can run it to see what it does.
     - The file "kernel.txt" contains the same output as the console.
     - Export all scripts and GUIs
     - Re-import the GUI(s)
     - Re-import the scripts and make sure that they're displayed in the same order in your project (it heavily relies on ordered dependencies)
     - If you intend to use the console :
          . Make sure you call AGSH_Console.BindGUI in the 'ongamestart' function
          . Make sure you call AGSH_Console.OnKeyPress in the 'onkeypress' function
          . Make sure you call AGSH_Console.RepeatedlyExecute in the 'repeatedlyexecute' function
     - Run AGSH_AGS_UnmanagedDLL.Reset_WithDependencies in the 'ongamestart' function

<Edit>Extended capabilities
The default mode of initialization if the module makes it maintain 2 lists : a list of free elements (to allocate) and a list of used elements (that will go back to the previous list once you disallocate them).
However you can create as many lists as you need. to see how to proceed, see the "New" and "Free" functions in the module.


Fully-featured example:
- See the "FileManager" module I'll post in another thread.


Pros and cons:
  About the Stack module:
     - The Stack module converts pretty much anything to Strings (provided it actually can be converted)
     - the parameters of the Stack module work "By copy" (you have to pass the string in paramater and return it - it's copied every time)
     - the allocation and disallocation in memory is dynamic (no space wasted)

  About this module:
     - the code is meant to be duplicated in any module that'd be requiring such storage structure. It's not very elegant but it's a choice (see "Programming style of the module")
     - you can manage the items stored in the structure by using a system of indices, which allows to pass them to functions as 'in/out parameters'. It's very light (note that it's still quite error-prone if you enable the debug).
     - it uses the native types of AGS (no conversion to "String") for a better performance, it it's a critical factor
     - the allocation and disallocation time is constant. It means that whatever the size of your lists, it always takes the same time to find a free slot, and to give it back. (However the complexity for the evaluation of the list is linear; this can be easily workaround'ed by implementing a little counter).
     -  the lists are allocated statically; it means they already use some memory at startup, even if you don't use them. That's a choice.


Note for programers: Programming style of the module
     - It's meant to be duplicated in other modules. But it would be wise to create only one such module for each type of data you'd like to store. For example you could create one for Files, one for GUIs, one for Characters, etc. See "Advanced Example"
     - It's quite heavy (you'll see it embeds many separate scripts). It's by design, for maintainability (it'll be part of a much bigger project).
     - It adopts AGS' object syntax (struct+methods), but all the methods are static. It's to be consistent with the integer indices system, and also because the very nature of this module does that it should match the "Singleton" design pattern.
     - the functions AGSH_Console.OnKeyPress and AGSH_Console.RepeatedlyExecute are called explicitely from the corresponding functions of the global script; I don't use the default functions inside the module. It's by choice. You may disable the integrated console anyway.
#349
Hi,

Note:
1/ I know the engine gives a very explicit message when you try, so I shouldn't ask
2/ I know someone else has probably already asked that before, but I didn't manage to find a result when searching the forum with such common keywords.

Having said that, Question :
It's not possible to open more than 10 files at a time?

I just want to be absolutely sure, since it's not mentionned in the File.Open documentation.
Don't worry, I don't really *need* to do that; I'm just curious.
#350
General Discussion / goodbye AGS
Mon 07/04/2008 23:19:58
Hi all,

This thread is probably of little interest, but it's just to say goodbye to the AGS community. I'm a traitor, I'll try to use Lassie AS now, because it's closer to what I'm looking for (at least, technically). I still love old-school games, but I've spent too much time dreaming of bringing some enhancements to the philosophy of AGS (by coding huge, unfinishable modules) just to realize that in fact I wanted to turn it into Flash. So... I'd better use Flash.

Anyway, keep on the good work, all of you. I've been watching at some games in production, and I'm looking forward to seeing some of them.

See you.

PS : you can be proud of you, because according to what I saw on Lassie's forums, they are far away from having the same community as AGS. The community here has an incredible level, and Lassie has absolutely no chance to "beat" AGS until they gather such a community.
#351
Haha, I bet I scared you with this title : "AGS script peformance". I bet that you are convinced that I am going to complain that it is too slow and that it suXxZ. Not at all!

Here are some tests that I performed with a tool described below to give a quantitative comparison of several coding solutions using the AGS script. It will allow script users to know how CPU-consuming is one thing compared to another.

IMPORTANT NOTE

These tests are only for scripts that need a very high performance;
Pay attention to the results interpretation below:
- Only if you are making a script that requires the execution of a huge and complex code that will only be used as the lowest layer of something much more simple and user-friendly.
- Only if you are going to have it perform a lot of calculation.
- Only if speed is a critical factor.

NEVER FORGET that a CLEAN CODE is much more important than a fast code. Always use function calls to avoid redundant code, always use as many local functions as necessary, always use the appropriate data type.


RESULTS

Using AGS 2.72 :
Code: ags

          --------------------------------------------------------------------------
         |    local variable   |   global variable   |  member of a global object |
-----------------------------------------------------------------------------------
int      |         58          |         57          |             56             |
-----------------------------------------------------------------------------------
String   |        282          |        253          |            252             |
-----------------------------------------------------------------------------------

         ---------------------------------------------
         |    inside loop      |   outside loop      |
------------------------------------------------------
int      |         82          |         76          |
------------------------------------------------------
String   |        263          |        252          |
------------------------------------------------------

                 ------------------------------------------------------------------------------------------------------
                 | int | String (litteral, length 0) | String (litteral, length 100) |  String (variable, length 100) |  
-----------------------------------------------------------------------------------------------------------------------
affectation time | 74  |              254            |            303                |             172                |
-----------------------------------------------------------------------------------------------------------------------

         ----------------------- 
         |      write time     |
--------------------------------
int      |         76          |
--------------------------------
float    |         76          |
--------------------------------
bool     |         76          |
--------------------------------


         ----------------------- 
         |        time         |
--------------------------------
if..then |         84          |
--------------------------------
if..else |         76          |
--------------------------------


         ----------------------- 
         |        time         |
--------------------------------
0 param  |         93          |
--------------------------------
1 param  |        107          |
--------------------------------
2 param  |        117          |
--------------------------------
3 param  |        128          |
--------------------------------
4 param  |        139          |
--------------------------------

         ----------------------- 
         |        time         |
--------------------------------
inline   |         61          |
--------------------------------
with func|         117         |
--------------------------------



RESULTS INTERPRETATION

Here is what can be said from the results above :

RESULTS THAT HAVE NO IMPACT
- internal structure of the script doesn't make it slower to access a global variable than a local variable.
- using objects is as fast as using primitive-types variables.
- ints, floats and bool have the same read/write speed. Other tests should be performed on calculation using floats vs. ints

RESULTS THAT CAN HELP GAINING SPEED
- Strings are 2 to 3 times slower than ints.
- Strings are almost 2 times faster when using variables than litterals.

- declaring a variable inside a loop is up to 10% slower than declaring it once at the beginning of the function
- putting instructions in the "then" rather than in the "else" makes the code 10% slower. It's wether because a condition is eaiser to invalidate than to validate, or because AGS virtual machine performs a "goto" to handle the THEN (vs. no jump for the ELSE)

- the more parameters you put, the slower is the function. See results above to see how much slower it is.
- using a function instead of a simple instruction is +100% slower.


#352
Hi,

this question has already been asked 1000 times, but there is a slightly different parameter here :

People have often been complaining that if you use the "FadeIn" or "FadeOut" functions and then any other function, they are not executed in the expected order (this is often solved by adding some calls to the "Wait" function).

But here, I'm not using "FadeIn" or "FadeOut". I'm just using "changeRoom" and I'm expecting the automatic transition  to start at the right time, which doesn't happen : the character first teleports to the coordinates used as parameters in "changeRoom" and THEN the fadeOut happens, which is very unpleasant.

I am using AGS 3.0 RC4.

#353
The topic is : Sprites and jam.
Sprites = the leprechaunish ones, not the pixellated ones
jam = the one made out of fruits

It could even be sprites jam  ;D

size: 150x150
maximum colors: 20

Bonus:
- art
- creativity
- good-taste palette
- original style (which means that yo have a kind of malus for cold photorealism)

Malus
- any sprite that would involve the lemonade brand of the same name (I hate mercantilism)

No bonus for background
#354
This is Jojo the Kiwi



He'd like to travel, to see the World.
And, first of all, he's never seen a kiwi (not the animal, the other one).

Make him travel, put him in exotic situations, have him see extraordinary things...

Bonus for :
- creativity
- quality of the anination
- quality of the drawing art (you may enhance the sprite a bit, but not too much)

#355
This Coloring Ball's topic is: FUN!



Use the given outline to create your own form of entertainment.
For example: It could be a virtual kinky games console inside a galactic theme park, using bionic connections to the player and organic captors (What the hell is that???), or simply an inflatable castle for children.


RULES
Theme:          Has to be any form of entertainment
Max width:    130
Max height:     90
Max colours:  128

-Additional-
* The outline may be mirrored and rotated in way or form, but not scaled.
* The outline may be copied. Copies of the outline can be altered in any way and are not restricted as the original
* The outline may be altered, but still has to be recognisable. (You know what I mean )
* Additional items may be placed ontop of the outline aslong as the original shape is still clearly visible.

Bonuspoints for creativity and originality.
Bonuspoints for including it in a background.
Bonuspoints for NOT doing something vulgar :) It can be naughty, though (it doesn't HAVE to be naughty, but I'm just trying to explain what's the difference between vulgarity and.. Hell, whatever, you get it)
#356
Hi,

I have found complete answers for what I'm looking for in most of the the threads I've read, or some partial clues, but I'd like to have an overview of it by some people who know what they are talking about :

How are characters processed in AGS, step by step?

Let me explain :
- When a constant string (e.g. : String str = "this is a dialog";) is typed-in in the script editor, is it saved as an ASCII? An extended ASCII?
- When a key is pressed, is the code read in on_key_pressedan extended ASCII code (with unused codes used to flag Ctrl/Alt/Shift)?
- In the translation files, what encoding is it? I don't know how Window's Notepad works : I believe it can't be ASCII, since the purpose of those translation files is precisely to be able to insert any non-latin character!
- a TTF font represents some Unicode pages, I believe

If my questions appear not very self-explainatory, it's because I'm still trying to figure things out.

Thanks
#357
hi all,

this is a newbie question, and you are entitled to answer me "RTFM".

I have put a ListBox on a GUI, and when the number of items in the listbox is too big, a scrollbar appears (or did I check some option to have the scrollbar always visible? I can't remember). Anyway, when I click on the scrolling buttons ("arrow up" and "arrow down"), nothing happens.

Could it be that I have to process the click event?
#358
I'm starting this thread similar to CJ's "what templates should be included to the future release of AGS", but here are the differences :

- RULE 1 - the modules should be usefull and not too "specific" (which exludes the "naval battle" modules, the "safe combination" modules, etc.) good modules would be : "characters control", or the one that removes the maximum limit of rooms, or the "downhill" one, or the ones that extend the fonts, or etc. You know, all that stuff that makes AGS more powerfull by using workarounds.

- RULE 2 - no plugins!

- RULE 3 - the modules must not be too outdated (2.72 is OK)

Any ideas ?

PS : prolific "modules contributors" may propose their own modules, since some of them may not be used very often, and are therefore a bit forgotten, but still very usefull

PS2 : such modules that work in combination with plugins (e.g. 3D modules) may be proposed, but only provided the code could be translated not too hardly into a pure module (regardless of the awful speed that would result...).
For example, if you only have to use some other Mathematics module to acheive the calculations in the converted 3D module, then it's OK, but if the original plugin uses some system calls that CANNOT be done in AGS script, then it's not OK.

[EDIT] Could you please add links to the modules you mention? (At least a link to the thread that mention them)[/EDIT]
#359
CJ against the Evil cellphone games plunderers



---------------------------------------


FEELINGS!





ACTION!




EVILNESS!




-------------------------------

Puzzles : 100% (one lame puzzle)
Graphics : 100% (animations could be enhanced)*
Music : 100% (stolen from mOds ;))

---------------------------------

CAUTION : This is a PARODIC SHORT GAME!

- Any ressemblance with any Chris Jones having existed is coincidence, since I've neither spoken to him nor ever seen him!

- No CJ was hurt during the making of this game.

- The English in this game is terrible! But it was even more fun making it without checking AT ALL any misspelling ;) ALL YOUR BASE ARE BELONG TO US!



        download : here

-------------------------------------

Note : the idea of making this game came to me after the "is CJ an immaterial being?" discussion (in "Adv. related talk&chat")... Feel free to continue the game, this would be fun!

the game project can be found here (made with AGS 2.8 beta - the Mittens edition, I think)




*Oops, I just noticed that I made some of the backgrounds are 320*200, while the game is 320*240. This is why some screens look kinda "blurry". The responsibility goes to "Deluxe Paint II enhanced", that was coded BEFORE 320*240 was made official - I had to think changing the size of the image before starting drawing it, which I did for the first background, but not for the others. It will teach me not to use old crappy programs, like the nostalgic loser I am.
#360
what's the difference between this :

Code: ags

function SayHello(this Character*) {
    this.Say("Hello");
}


and this :

Code: ags

struct EnhancedCharacter extends Character {
    import void SayHello();
}

void EnhancedCharacter::SayHello() {
    this.Say("Hello");
}


???



...Were extenders created only because at this time one can only pass real Character*s (or any other managed type) to functions?
SMF spam blocked by CleanTalk