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

#12821
This might be too late to mention, but there's an option in General project settings: Enforce new-style audio scripting. When set to FALSE it enables older functions like PlaySound (which takes sound index as parameter). Probably it will allow to mix both styles in one game. Never tried that myself though. Not the best thing, but may work as a temporary solution.
#12822
Come on, how that may help the guy? :) Unless he is going to hack the engine... or you have that fixed in your own version?
#12823
Quote
Using the sayBackround command makes it so they all speak at the same time and only the last line

This is quite a basic mistake. SayBackground command does not block further script, therefore next command is executed right away. Since there may be only one saying per character at a time, the next SayBackground overrides previous one and finally only last lines are shown.

Quote
I've also tried to use timers, where I call a function in repeatedly execute to make sure the conversation is over, and then IsTimerExpired and so on....The thing is, sometimes it works (typically with short sentences... like, three words) and sometimes it freezes up and the text in the saybackground won't leave the screen.
Well, using timers in room_RepExec sounds like a  much better idea. Perhaps you just had some mistakes there?
Basically you need to run the timer after each background saying until all phrases are done.
For example:
Code: ags

int JibberishCount;
bool JibberishState;

function iAstonishingBlast_Talk()
{
  if (cEgo.Room == 37 && (Game.DoOnceOnly("jibberish")))
  {
     Display("The voices keep talking, but they seem less coherent..");
     JibberishCount = 0;
     JibberishState = true;
     SetTimer(2, 120);
  }
}

function DoJibberish()
{
  if (IsTimerExpired(2))
  {
    JibberishCount++;
    if (JibberishCount == 1)
       cLarsHaikola.Say("The mistress of cruelty cannot be slain until the white hare lies in blood.");
    else if (JibberishCount == 2)
       cDanWolgers.Say("What?");
    else if (JibberishCount == 3)
       cErnstBillgren.Say("Lost control, fell apart, the wole damn genealogy went berserk!");
    else ......
    <.....>
    else
       JibberishState = false; // done talking

    if (JibberishState)
    {
       SetTimer(2, 120);
    }
  }
}

function room_RepExec()
{
   if (JibberishState)
   {
      DoJibberish();
   }
}
#12824
My guess is that this may easily be result of rounding error. Many things in AGS are done with integer math and scaling involves division operations which may (will) produce such mistakes.
#12825
That's definitely original CJ's code.

Editor VC solution is Editor/AGS.Editor.Full.sln
Engine VC solution is Engine/acwin.sln

Editor uses all the code from Editor folder + some files from Common and Engine folders (I cannot remember which exactly though, it's been too long, but MSVS should take care of it anyway).
Engine uses almost all the code from Common and Engine except for one or two files that contain Script Compiler (which is used only by Editor).

In Editor solution the actual application is AGSEditor, but it requires everything else built beforehand (AGS.Types, AGS.Native, etc). When built the executable appears in Editor\AGS.Editor\bin\Debug\ or \Editor\AGS.Editor\bin\Release\.
Engine solution has only one project - acwin. When built, executable appears in Engine\acwin___Win32_DebugWorking\ and Engine\Release\.

I suggest you try to build and run everything at least once to be sure you have all set up before editing anything.

Quote from: icey games on Sun 23/09/2012 21:00:44
please do keep in mind I have never really touched MSVS so I have absolutely no clue how to use it.
Ouch... okay :). I hope that does not sound rude and all, but can you at least program in C++ and/or C#?
#12826
Quote from: JJS on Sun 23/09/2012 18:29:30
If you want to compile with anything but Visual Studio 2008 you will get linker errors. This is because the libraries (especially Allegro) are built with that version and expect a certain version of the VC runtime. Building the debug configuration probably works with few tweaks but the release configuration does not link with anything but VC 2008.

You may install minimal version of 2008 (Express) and still work in 2010 by doing this:
Quote
Open Project properties for the Engine project, "General" -> "Platform Toolset" -> should be set to v90.
#12827
Quote from: icey games on Sun 23/09/2012 17:19:26
Sorry guys, I didn't know it was this much to do as I thought it would be like AGS. Open something, edit it, compile it and boom it's done but everything in the source just seems so spread out.
Well, generally speaking it is true - you open, edit, compile and boom!... (lots of bugs :))... but in practice it's usually more work.
Never hurry when dealing with program source for the first time. Usually it takes some time to know what's what, but after you gathered all the knowledge it's much simplier (at least until you start to edit the code).
If you got the older source from CJ's SVN, that should be simplier, because there is only windows version of the engine.
If you got the source from github (https://github.com/adventuregamestudio/ags) - it has more folders because it supports more platforms (linux, macos etc), but if you build for Windows you should not really care about these (not at the start anyway).

In general AGS source contains following:
- AGS engine files: Common and Engine folders.
- AGS editor files: Editor folder.
There are two projects (for two programs):
- AGS Engine - that's the thing that runs games. It uses the code from Common and Engine folders.
- AGS Editor - that's the editor application. It uses the code from Editor folder, as well as some code from Common and Engine folders (but in refactored branch on github it does not take code from Engine anymore).

Now, depending on what source you got, the project file (*.sln for MSVS) places may be different.
Originally Editor project (AGS.Editor.Full.sln) was in Editor folder and Engine project (acwin.sln) in Engine folder.
In refactored branch I moved all the MSVS projects into separate Solutions folder (but I am still not sure what version do you use).

Quote from: icey games on Sun 23/09/2012 17:19:26
I had got the source from somewhere on the forum, most likely from the main source post. I also have the Skygoblin source code and the one that you(Crimson) have put up but I haven't unzipped it.
Sorry, that does not say anything to me, except for *maybe* you are speaking about original CJ's SVN source. Skygoblin's source does not have much difference from that, relatively speaking. And I do not know what "my" version do you speak about, because I can't recall I ever uploaded any "zipped" source code... so I am a bit confused :/.

Quote from: icey games on Sun 23/09/2012 17:19:26
I have Visual Studio 2010 {I think Ultimate if there is such thing but my version is free...I think I may torrented it)
Okaaay.... If you have VS Ultimate, that will work for building editor (although I remember there were few problems related to building in VS2010; I think some changes must be made to project settings first).
That's not related, but I do not think you may call it "free version"... you pirated got it for free, allright :P.
BTW you may check the version at "Help" -> "About Microsoft Visual Studio" in VS main menu.

Quote from: icey games on Sun 23/09/2012 17:19:26
And I really don't know what I'm trying to build. Just want my own version of the editor that I can edit if I can learn how to but mainly for increased object(40 - 80) and background amount (5 - 20).

First of all, you must understand that this is not a trivial task. If you want to increase number of objects, you should edit not only editor, but also the engine, otherwise your games will fail to run.
For starters I may tell you this: Editor uses some code from the Engine folders, and when you edit these you practically change two programs at once: editor and engine. So take care and spend some time on research and planning.

If you give me more details on the source contents (e.g. what folders do you have in there) I may make better guess on what version have you got and therefore give more accurate advices - what project to open, how to build, etc.
#12828
Icey games, you must give more information really.
First, where exactly did you get the source? Sometimes this matters because different versions of the AGS source may require different approaches to build them.
Second, what platform are you building on? Well, I guess that might be Windows, but still.
Third. What IDE are you using, where did you "open" the source in? Is it Microsoft Visual Studio? or else?
Fourth. What project you are actually trying to build? There are three possible known: Full Editor, Editor without AGS.Native and Engine.

Regarding "update DLL" I guess this is an indication that you should build AGS.Native.dll prior to building Editor application.
Message about source control is actually something you may simply ignore. It warns you that the source you got keep traces of being under source control one day but it's not anymore.


EDIT: now... I remember BigMC once asked me to write an instruction on building AGS source under Win... but I completely forgot about that. Shame on me :).
#12829
Engine Development / Re: AGS engine Linux port
Sat 22/09/2012 20:40:55
Another way to debug this would be to write signature strings after every save routine step and then compare two savegames from different OSes in the hex editor.

E: You know what.... I just found a bug in refactory branch... the global vars are READ during save routine :D. That's probably not related to the discussed problem though, but i's nice I made that recheck.
#12830
Engine Development / Re: AGS engine Linux port
Sat 22/09/2012 16:58:39
Quote from: BigMc on Sat 22/09/2012 10:30:51
I know at least one reason why it's different between 32 and 64 bit. Look at save_game_data in the main branch and search for sizeof. There are structs stored that contain pointers:
RoomStatus, GameState, GameSetupStructBase, maybe more
Was he speaking of main or refactory branch?
I will recheck save/restore functions just in case. Who knows, I could miss some of "sizeof" instances there, or maybe added more mistakes...
Also I think we may finally remove alignment padding from there, since new engine is not supposed to be compatible with older version savegames.
#12831
I have this thought about this for some time already. I can't say it's very urgent thing to consider, but we are approaching the moment when engine development branches are joined, and refactored code is pushed to master branch. Probably people would like to improve engine more intensively and add new features, including new script commands.

I strongly believe there should be some kind of group, whatever you call it (e.g. comitee), that would work on defining AGS scripting standart. I do not think that coders should do that. This has to be done by people very experienced in using AGS and developing games. These people should determine the general way the AGS should involve, scripts in particular.
While it is technically very easy to add new script commands, this should not be done without a plan in mind. Since AGS allows to write your own extension functions and script modules there must be a criteria to distinct script commands that should be incorporated into engine and which to be rather left for user modules.
#12832
What color depth does your game use (256 colors, 16-bit, 32-bit)?
What system do you run the game on (your first and second computer)? What graphic settings do you choose in game's setup (renderer, scaling filter)?
Does your game load any graphics from disk dynamically on game start (if you scripted something like that)?
#12833
Quote from: dkh on Fri 21/09/2012 14:41:48
I don't like considering adventure games turn-based because, in my opinion, there's more to a game being turn-based than just 'I-click-and-stuff-happens-I-click-again-more-stuff-happens', a proper turn-based games relies on the fact that two or more people take their turns every round, then wait for the opponent(s) to make their move, rinse and repeat, and that certainly doesn't happen in point'n'clicks.
I see what you mean, but what if we consider The World (or The Game) another player? Then adventure game will be a game in which player and The World do actions in turns.

Quote from: dkh on Fri 21/09/2012 14:41:48
Genre generalizations are never 100% perfect and never fit quite everything out there
Well, that's definitely true. For instance I could never understand RPG definition :).
#12834
Quote from: dkh on Fri 21/09/2012 13:37:33
Quote from: HandsFree on Fri 21/09/2012 13:31:22
4. Of the following, which type of games do you play most often?
Time-limited (e.g., timed chess, etc.)
Turn-based (e.g., card games, board games, etc.)
Real-time (e.g., physical sports, FPS, etc.)

Where do adventuregames fit in this question?

Real-time in my opinion. There are not a lot of real-time aspects in some adventure games but even for those, that category is the best fit.

On contrary I think most of adventure games may be thought of as turn-based, because most changes happen only as a result of user action and do not depend on time.
#12835
Quote from: BigMc on Fri 21/09/2012 13:29:01
When do you think is a good time to recommend people to use refactory? If there are no known bugs, why not now?
I know only one bug related to freeing managed script objects that takes place when application window is closed by OS means (e.g. alt+f4 in windows), but it happens only when game is closing so maybe it isn't that critical.
Don't know if there are any platform-specific bugs. JJS said there were some problems on 64-bit and bigend OSes, but he made a commit with fixes recently, so maybe they are solved?
Personally I am totally supporting change to refactored, 'cause it is becoming more tedious to copy changes from main. Plus it will be tested more :)
#12836
I tried to answer honestly, but I realized I cannot give accurate answer on what genre I spend more time on. There are few genres I play most and obviously I never kept any statistics :)
#12837
Quote from: BigMc on Fri 21/09/2012 12:14:13
That was a bug in the saving code that I fixed now in the main branch (commit 205c56d693d903516b7b21beb454251e9489aabf). I don't know why it never caused problems on 32 bit.
I've already fixed that in refactory branch some time ago. I wanted to ask JJS about this (since it was in his new code), but forgot :/.
#12838
General Discussion / Re: Echoes of The Nezhyt
Fri 21/09/2012 12:03:35
There's actually a "Contribution thread" here: http://www.adventuregamestudio.co.uk/forums/index.php?topic=14864.0
I think you may upload your resources and post link there stating conditions of use.
#12839
When you make variables that you want to use in different script (like you created vars in GlobalScript and want to use them in room script) then you must export them.
In GlobalScript.asc add this:
Code: ags

export character_temp_x, character_temp_y, character_temp_Room;

In GlobalScript.ash add this:
Code: ags

import int character_temp_x;
import int character_temp_y;
import int character_temp_Room;


Now the room scripts can "see" those variables and use them.
#12840
Quite late to make this reply, anyway, couple of notes -

Quote from: Wyz on Mon 25/06/2012 13:47:52
The only real struggle I have there is AGS' lack of doing callbacks. I want AGS to call certain functions when messages arrive but I've yet to find an elegant way of doing this.
JJS recently mentioned he wants to invent an event system in AGS. I am not sure about details. But plugin interface is a bit limited IMO. Probably you might start some discussion on how it may be developed further to provide more freedom for plugin-writers?
We are also putting some utility classes into use, like Stream, String, etc. There's yet a problem of maintaining backwards compatibility, that's the reason we cannot change parameter types in plugin interface members, like FILE pointer to Stream; some solution has to be found there.

Quote from: wolverine79936 on Mon 09/07/2012 15:12:23
Just a silly idea, Wyz, but couldn't we hack the AGS source code? It is available. I forgot where I found it but it was somewhere under the downloads section.
If you are still interested, AGS engine is being actively developed by JJS for quite a while now (he does ports to other platforms as well as adding ability to run games made by older versions) and I was doing code clean-up since June; now we are finally up to merging our versions into one branch. FYI our AGS code may be found here: https://github.com/adventuregamestudio. You may use Git to make your own personal copy and do whatever you like with that (just a hint).
Regarding adding networking to AGS, that may be an interesting feature request. I just wonder what other people would say about this. Will this be appropriate addition to the engine, or should rather be made as a plugin? After all, networking is not so common for adventure games...
SMF spam blocked by CleanTalk