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 - Crimson Wizard

#11761
I believe that they did it in "Anna Quest (vol 1)". When you start the game it shows "preloading animations" progress.
I don't know how they did it (this may be examined under debugger though to know which script functions are called), but I believe all you need to do is to make some simple not- time costly operation over sprites (without drawing them on screen, of course). This will force engine to preload them.

Perhaps, a good idea would be to do this on each room load, or between distinctive game sections.

Other than that, I'll continue trying to improve certain functionality to see if it would be possible to restore performance even closer to 3.2.1.

PS. I probably was too fast in doing that merge... other than improvement it contained also experimental stuff made exclusively in anticipation of migrating to Allegro 5, but since the latter is not happening in nearest future, it might add little extra overhead. I will revise latest changes and probably redo them in a more simple way.
#11762
Quote from: Ali on Wed 12/06/2013 23:53:03
I assumed that changing the line JSS altered in spritecache.cpp would sort out the 5mb issue. But perhaps 100 is a better defailt, since it's full of all graphics and stuff...
It may sort the issue, I was just warning you that the git sources do not have it fixed.
Setting 100 MB does not change much, I was telling to change the option to make it write something to config, because default (20 mb) does not write anything and the engine will keep its own default (which is 5 MB in Git sources).
Also, this setting only defines size of sprite kept in memory, but it does not define when those sprites are loaded. It looks like the sprites are only loaded to memory when they are first used. For example, when Bloodbeard appears, his sprites are loaded from the file no matter how large sprite cache is.
#11763
Your lines 7, 23, 31 etc make no sense at all.

Code: ags

if (CauldronCounter < 4) {
      (cWoo.ActiveInventory == iIngredient1) {


E: Actually, you may just be missing another "if" there, in which case ignore the following.

//-------------------------------------------------------
I can make a guess that you wanted to combine two conditions here?
This is how it is done:
Code: ags

if (CauldronCounter < 4 && cWoo.ActiveInventory == iIngredient1) {

&& sign means AND operator, that is: both conditions must be correct to make this part execute.

If you need "any of the" conditions to trigger your code, use OR operator:
Code: ags

if (CauldronCounter < 4 || cWoo.ActiveInventory == iIngredient1) {



More on this:
http://www.adventuregamestudio.co.uk/wiki/Scripting_tutorial_part_2#Multiple_conditions
#11764
If I understand correctly, 9999 is a max number per character.
Meanwhile, is it possible to deal with this issue by making a dummy character(s) who would speak extra lines for real one(s)?
#11765
Ali, I copied part of development branch to the "master". Now the master branch should run as well as the build I sent you yesterday.
Do not forget about sprite cache though, we still don't have that fixed, which means you have to set something different from default option in winsetup (like 50 or 100 MB).

In PM you mentioned there's still "tiny lags" during some big animation. What animation is that, can you point out where in game it takes place?

Speaking on perfomance in general, I must say that original 3.2.1 engine runs on top-limit with your game too. It causes about 15-17% load on my processor, which has 4 virtual cores (2 physical ones), meaning it takes about most of 1 virtual core (25%) to work. Since AGS runs on one core only, this may cause problems if you increase the amount of things happening simultaneously.
#11766
Ah, so you need a label which displays hotspot name to be hidden when gui is shown?
In such case you may simply hide the label overhotspost information is printed on, and show it again later when gui was closed.
#11767
People, did anyone have a thought that "Create Folder" menu items should follow "Create Item" in project tree, not precede them?
I make a lot of test games now, and it is really annoying, every time I want to create Character or a GUI I create a folder instead, because my hand instinctively chooses first item in context menu :-\.
#11768
It's coming to the next 3.3.0 beta update :)

[imgzoom]http://img32.imageshack.us/img32/9201/testspeechportraitcusto.png[/imgzoom]
#11769
AGS Black Label :D.
#11770
Quote from: cat on Wed 12/06/2013 09:09:57
Since this is becoming more and more popular: Should there maybe be a template with left-right-click GUI?
I asked Khris to make one. :).
#11771
Engine Development / Re: AGS engine Linux port
Tue 11/06/2013 21:58:24
Quote from: s_d on Thu 06/06/2013 00:07:28
Quote from: Crimson Wizard on Wed 05/06/2013 08:33:17
I made few optimizations in "develop" branch, mostly simplifying new class hierarchies and inlining functions. They did not increase perfomance really much, but were enough to fix desynchronization between animation and sound/music during cutscenes in particular games. I think it would be possible to partially merge (or cherry-pick) that to master.
(merging whole develop branch right before the release would be risky, because it has significant change in internal data structures).

I agree with your merge strategy;  would that be something you'd like me to cherry-pick and test, or would you prefer to?

I am going to try merging the first part of "develop" branch up to the point where I started to change internal implementation of game objects. It contains an improvement that seem to have a noticable effect on amount of processor load "Nelly Cootalot II" does (according to my examinations).
Also IIRC the changes in that part are strictly dedicated to optimizing utility classes and few engine routines.
#11772
Oh my.
It should start with 1. :) Hotspot 0 is "no hotspot".

Code: ags

 int i = 1;
 while (i < 50) // since there are 50 hotspots max
 {
  hotspot[i].Enabled = false;
  i++;
 }


PS. No "if (hotspot[ i ])" check is not needed, because there's always 50 (49) hotspots in 3.2.1 (even though most could be unused).
#11773
Quote from: Ryan Timothy on Tue 11/06/2013 17:55:35
Don't forget your i++ Crimson.  :-D

Argh, I wasn't fast enough :P.
I keep forgetting this, because I use "for" loops in C++, and they have ++ part in the header.
#11774
Quote from: Volcan on Tue 11/06/2013 17:12:44
Is there a better way to disable hotspots than this?

hotspot[1].Enabled = false;
hotspot[2].Enabled = false;
hotspot[3].Enabled = false;
...
If you mean - disable them all, or certain amount at once, then you are looking for Loops:
Code: ags

int i = 0;
while (i < 50) // since there are 50 hotspots max
{
  hotspot[i].Enabled = false;
  i++;
}
#11775
This is not related to sprite cache at all, 20 MB should be enough to run the game. I keep looking.
#11776
Quote from: awakening on Tue 11/06/2013 11:28:25
I think anyone can assume that anyone who writes "#1 Gay Basher" in some kind of proud way has an opposition to them, for one reason or another.  Anybody who writes such a blatant hatred towards another human being is opening themselves up to being questioned and judged.  It's not very nice, is it?  Why wouldn't I want to oppose unjust discrimination?

That might be related to personal experience, but I would not immediately oppose a man (any man) if he'd written "#1 Jews killer" under his avatar, because, from my point of view, such statement made on general public forum (not dedicated to nazi philosophy or something like that, for example) would mean he is 1) making a dumb joke, 2) being a troll (or pretending to be one) or 3) sarcasm (something like Khris explained). In either case this could mean he is acting stupid, but not directly prove he seriously have "blatant hatred" towards aforementioned group of people.
#11777
Quote from: awakening on Tue 11/06/2013 11:19:42
Monkey - how can you say your religion makes you a better person and leave '#1 Gay Basher' as the text under you avatar?
He is joking. Or pretending to be a troll.

I have a question for you, though. How can you judge a man out of context - by reading "bits and pieces" of what was written in the thread?
#11778
Quote from: Renodox on Tue 11/06/2013 03:11:05
Nope "Snowflake" is wrong.

1. Breath :).
#11779
Quote from: MiteWiseacreLives! on Tue 11/06/2013 08:25:52
I believe it's when I run the debugger while I have a messed up function declaration in the global header (the variable didn't match the function in global script, I think)

Hmm, can you post an example (the function that does not match and how it is used)?
SMF spam blocked by CleanTalk