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

#1961
I hadn't thought about the inventory.  Good point.  
#1962
You may want to reconsider using multiple characters.  You can use the GetPlayerCharacter() function to  return the player character ID in place of a constant such as EGO.  So, for example you would do this:

character[GetPlayerCharacter()].room = 42;

instead of this:

character[EGO].room = 42;


#1963
Maybe the horizontal part of the path needs to be thinner than the vertical part to show perspective?

#1964
Ionias,

I just want to say that I am proud of you and what you have accomplished.  In my opinion one of the most important things you have done is that you have shown that it is possible for independent game developers to make money.  I think breaking even is an important milestone and I hope you hang in there for a while longer.

Perhaps you could take the time to publish a white paper about the experience for the benefit of other would be comercializers.    

As far as the "harsh" review goes, everyone is entitled to their own opinions.   Robert seems to be honest and sincere in his review and has taken the time to come here and participate in this discussion.  That review is just a battle scar man, be proud of it.  

As far as where to go from here?  Since you already have a website setup for people to make purchases, perhaps you could offer some kind compilation of some of the better AGS games along with Fatman (with consent of the Authors of course)?   Well, just and idea.  I'll leave it to you to consider it's merits.

Again Ionias, good work.  Your an inspiration to all.

Cheers
Rick  
#1965
Gotth,  

Do you still need help?  If you do, feel free to ask questions.  That's what we are here for.  What Peepwood said is true,  there are a lot of useful tutorials and other reading materials.   However, it can be frustrating when you are just starting out.  

One of the most common mistakes peopl make with AGS is that they imagine that things are more difficult than they actually are.  Keep trying and things will soon start  comming to you more easily.

#1966
General Discussion / Re:Birthday spam!!!1
Wed 22/10/2003 19:10:15
Happy Birthday   !!!
#1967
You could use a transparent GUI with a ListBox.   A list box can handle 100 lines of text.
#1968
You can do a character[CHARID].room = -1 to make him dissapear, I believe.   It's not exactly the same thing though...

Doesn't work if you want him to wander around the current room as an invisible guy.
#1969
Assuming some drive letters and directories, you could use a script something like the following to run a game from a cd.

cd  c:\tmp              
m:\mygame.exe

The problem, of course, is you don't which drive the cd will be and you are not certain that the hd is drive c: or that it will have a tmp directory.

Keep us informed of your progress as I am sure a lot of people would like to know a goo way of doing this.


#1970
I think adding an open source category to the games page is an effective and easy answer to this.    
#1971
If your having trouble downloading try entering the first part of the url to get to his main site.  Then add ODIS1.1.zip to the URL.  That worked for me.
#1972
Mostly, what you are talking about won't work as these things are cast in stone when the "holy source" is compiled into AGSEDIT.EXE.  
#1973
Ok,  I'll take a shot at this...

First let me give you a general explanation of what's going on.  Forgive me if I explain stuff you already know.  

When AGS executes a script command nothing happens on the screen until after the script is complete.  The script command merely passes data to the engine which actually changes and moves things around on the screen.  So if the character EGO was initially located at 0,0 and you did the following in a script the character would not move at all.  

  MoveCharacter[EGO,  0, 0];
  MoveCharacter[EGO,  60, 0];
  MoveCharacter[EGO, 160, 100];
  MoveCharacter[EGO, 100, 160];
  MoveCharacter[EGO,  0, 0];

This is beacuse his original position was 0,0 before the script executed and after the script executed his requested position is 0,0 so there is nothing for the engine to do.

To overcome this AGS provides "blocking" instructions that "block" the script until the requested action is completed by the engine.  In other words when a "blocking" command is executed, further instructions in the script are not immediately execute.  Rather execution is returned to the game engine, which sees and executes the request.  When the request is complete the script is released and the next command is executed.  

The problem with using blocking commands is that once a room script is blocked you can't do anything else until the current action is completed.  This fine when you are moving the PC around but inadequate if you are moving NPCs around.  The MoveCharacterPath() command was introduced to get around this problem.  

So here is my suggestion, it's not all that different from what some of the others have suggested.  


// Room Script

int racer1_state = 0;
int racer2_state = 0;

function do_racer1()
{
  if (racer1_state==0) {
     MoveCharacterPath(....);
     MoveCharacterPath(....);
     MoveCharacterPath(....);
      :
     MoveCharacterPath(....);
     racer1_state++;              // add 1 to state
  }
  else if  (racer1_state==1) {
     if (!character[...].walking) {
        racer1_state++;        
     }
  }
  else if  (racer1_state==2) {
     SetCharacterView(...);
     AnimateCharacter(...);
     racer1_state++;        
  }
  else if  (racer1_state==3) {
     if (!character[...].animating)  {
        ReleaseCharacterView(EGO);    
        racer1_state++;        
     }
  }
  else if  (racer1_state==4) {
     MoveCharacterPath(....);
     MoveCharacterPath(....);
     MoveCharacterPath(....);
      :
     MoveCharacterPath(....);
     racer1_state++;        
  }
  else if  (racer1_state==5) {
     if (!character[...].walking) {
        racer1_state++;        
     }
  }
  else if  (racer1_state==6) {
      // do something at end of race
     racer1_state++;        
  }
}

function do_racer2()
{
  // Same as code in do_racer1()
}


function room_x()
{
  // Room script's repeatedly execute event handler

  do_racer1();
  do_racer2();
}

Fill in the "..."s with your specific character id's, postions, views, etc.   Try it and let me know what happens.

Cheers
Rickj


#1974
What TK is taking about something like the followng: Suppose  you had a cutscene consisting of 5 consecutive rooms.  They were all scripted to have wait for 15 seconds and then transition to the next room in the sequence.  Now suppose you decided that you needed to add an additional scene between rooms 2 & 3.  Of course, you could have room 2 jump to room 6 or someother arbituary room number and then have that one jump back to room 3.  Although this is completly workable, TK, for example, would prefer to maintian a linear sequence of rooms.  In this case TK would need to rename his room files accordingly and would also need to edit each of the room scripts.

TK: There is alread a way of doing this.   Do something like the following in the Script Header File.  The prefix is important because it prevent collisions in the name space (i.e. you would never confuse a room name with a sound or music name).

[Script Header]
//======================================
//  Room Definitions
//======================================
#define  rTITLE                           0
#define  rCREDITS                      1
#define  rINTRO                          2
#define  rOUTSIDE_BUILDING    3
#define  rINSIDE_BUILDING       4
#define  rOUTRO                        5

The you would do something like this in each of the room scripts.  

[Room 0 Script]
room_a()
{
  Wait(15);
  NewRoom(rCREDITS);
}

[Room 1 Script]
room_a()
{
  Wait(15);
  NewRoom(rINTRO);
}

Hope this is helpful.  
#1975
Advanced Technical Forum / Re:Game Setup
Tue 02/09/2003 05:25:41
TK:  That only works if you put the executable in one of the directories that windows searches when trying to launch a program.


All:  The reason I asked about this, is that I am making a game launcher program for AGS games.   I'll have something to show soon.  Perhaps by next weekend.  
So perhaps having a game launcher will help this situation.  

By the way, would anyone be interested in  making or donating some 16x16 button glyphs for the followng buttons?

  Play Game
  Setup Game
  Exit Launcher
  Configure Launcher
  Help  Launcher
  Cancel
  Ok
  Add Catagory
  Remove Catagory

Or a 32x32 AGS Launcher Icon.

Stay tuned ...
 
#1976
Advanced Technical Forum / Re:Game Setup
Mon 01/09/2003 03:32:43
Thanks ThunderStorm.  That works just fine....
#1977
Advanced Technical Forum / Game Setup
Sun 31/08/2003 21:19:59
A while ago I thought I saw something where you could run the game setup by passing command line arguments to the game.exe file.  

If this is so what are the command line arguments?  

If not, let me know so I can go get a beer or something... :)
#1978
Advanced Technical Forum / Re:Save/load thing
Sun 31/08/2003 02:54:33
I am guessing that you want to take a screen shot  when you do a save game so that you can display same when restoring.  

It's easy enough to add a screen save whenever you save the game and to manuafacture a unique filename.  But, isn't the problem that AGS doesn't have a method of displaying an image file at runtime?

P.S.  There is a better link to the BlueGui in my signature line below.

#1979
Thanks Gilbot, for the info.  I suspected somthing like this.  

Cheers
#1980
CJ just out of curiosity are the following parameters still used?  They seem to be unaffected by the current winsetup.exe file.

  digiid=-1
  midiid=-1
  digiindx=0
  midiindx=0

SMF spam blocked by CleanTalk