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.


Messages - lance.ewing

Pages: 1 ... 38 39 [40] 41 42 ... 50
586
AGI Development Tools / Re: PICEDIT 1.3 Milestone 4 released
« on: September 14, 2011, 01:44:13 AM »
Thanks for everyone's feedback. You can probably guess a few of the next things I'll choose to make more windows like. The buttons are probably at the top of that list. That button panel is I think the last thing from the classic version to hang around.

587
AGI Development Tools / PICEDIT 1.3 Milestone 4 released
« on: September 13, 2011, 03:24:45 PM »
Today I have built and released the fourth milestone of PICEDIT 1.3.

http://picedit.googlecode.com/files/picedit-1.3M4.jar

The new features include:

* New desktop with internal frame for holding the picture. This is a first step towards enabling multiple pictures in a future milestone release. It also makes it a lot easier to work with zoomed in pictures that extend beyond the edges of the screen.

* A slider has been added at the bottom of the picture for quickly changing the picture position. This slider has been built to run as fast as it can.

* Fixed a bug where it was difficult to draw a line to the top line of the picture. The line tools (pen, line and step) will now restrict the mouse to within the picture panel so that it isn't possible to leave the picture frame unless the line drawing has been deactivated (with a right click). Thank you to Peter Kelly (author of AGI Studio) for finding and reporting this bug.

* Various minor changes to make the tool look more Window like and less DOS like.

Let me know what you all think. I am very keen to hear your feedback and suggestions. This is particularly important this time because I did a large amount of reorganisation of the source code (refactoring for those who know what that means) and I'm not 100% certain myself that I haven't introduced completely new issues. So please have a play around and let me know if it does anything strange.

588
AGI Syntax Help / Re: The illusion of scrolling in AGI
« on: September 08, 2011, 02:18:05 PM »
Yeah, I'm sure there is a limit on the number of views on the screen. I don't think that having animated views would give us what we want, unless the screen was very basic. I recall that there was a way of adding a view on top of a picture in such a way that it becomes part of the picture rather than being a managed view. I think it was called add.to.pic. Yeah, I just did a google for it and found this:

Code: [Select]
add.to.pic(a,b,c,d,e,f,g), add.to.pic.v(a,b,c,d,e,f,g)

A picture of a VIEW resource is added to the background as its component. Typically, this is used to add small complicated details which would require too many PICTURE resource commands to draw.
Parameters are:
a (va): number of the VIEW resource;
b (vb): loop number;
c (vc): cel number;
d (vd): x coordinate;
e (ve): y coordinate;
f (vf): priority;
g (vg): margin.
If margin is 0, 1, 2, or 3, the base of the cel is surrounded with a rectangle of the corresponding priority. If margin > 4, this extra margin is not shown.

So in theory with the above command you could build up a whole picture by loading different views and placing cells on the picture at various positions. Part of me wants to try to write something to convert a Maniac Mansion picture to AGI resulting in a number of views cells and a LOGIC to place them in the appropriate positions. Hmmm, thinking about it though, maybe the generated LOGIC script would be too big. It would be something like 40x20x8 bytes.

589
AGI Syntax Help / Re: The illusion of scrolling in AGI
« on: September 01, 2011, 01:17:48 PM »
Yeah, I've thought about that as well. It would probably take quite a lot of VIEWs to do something like that.

The original Maniac Mansion came out for the Commodore 64 and the first version for the PC used pretty much the same data files. One side effect of this is that the graphics for the screens were all based around a C64 character set and screen map. So the screens were built by reusing the same small multi-colour 4x8 bit maps. We could almost do the same thing with VIEWs, i.e. build up the whole screen by placing various VIEW cells across the screen to make up the background.

590
AGI Syntax Help / The illusion of scrolling in AGI
« on: August 31, 2011, 01:36:53 PM »
I was just wondering over the past day or so whether anyone has tried to create the illusion of a scrolling room within AGI. I was thinking that maybe having a series of AGI pictures that are different frames within the scrollable scene, and as ego walks a certain way across the screen that it animates a scrolling background by loading some pictures in quick succession. You'd obviously be sacrificing valuable pictures but for a smaller game maybe it would be okay. I'm not sure if the picture load and display would be fast enough or whether it would look a bit jerky. Any thoughts?

Another thing I've thought about more than once is that the original Maniac Mansion game was the same resolution as AGI. Wouldn't it be cool to try to come up with an interface in AGI that looks similar to the one used in Maniac Mansion, where the bottom part of the screen has the words and inventory items and the top part is the picture. We'd basically throw away the built in prompt and message box capability in AGI and try to simulate the MM alternative, which I quite liked.

591
SCI Syntax Help / Re: Nodes - What are they?
« on: August 30, 2011, 02:08:59 AM »
This is yet another portion of SCI code syntax that Brian never ever explained, at least to my knowledge.

I guess it is possible he didn't fully understand it himself at the time... or perhaps he overlooked it given that to me there seems like so much to explain.

As an aside, whenever I see the SCI Studio/Companion syntax like what you've shown, I'm tempted to go through it and change it to what the original SCI syntax was (after having spent that time a while back trying to discover what the original syntax looked like). Now that we know where the sample code from the PQ SWAT game lives (i.e. Wikipedia), we have a better idea of what the original looked like. I wonder if at some point someone could attempt to add the original syntax as an option to SCI Companion?

592
SCI Syntax Help / Re: Nodes - What are they?
« on: August 29, 2011, 02:58:28 PM »
Not having ever tried to write SCI code, my guess from a more generic point of view is that it would be nodes in a linked list. I've written code to implement linked lists before and nodes are what I called the things that held the data for a particular item in the list and that also had pointers to the next and previous nodes. I'm guessing I called it that because that is probably what they are usually called. And I think I saw in the list of SCI kernel functions that there were a number of functions that dealt with nodes within kernel managed linked lists, so this sounds like a likely answer then. Under the hood I'm guessing that the inventory is managed by such a kernel list.

For my own curiosity, what is mysterious about the said property that you referred to? Is it something that isn't understood much within the SCI programming community? And when you say it doesn't work, is it that you think the original feature in the Sierra interpreter doesn't work, or that the SCI Studio/SCI Companion compilers don't treat it properly, or that the lack of understanding of how it works means that it is hard to get it to work?

593
Not sure how much help this is but I recalled overnight that the first room (room 2) in my Ruby Cast game had something like what you described. The old man starts moving his mouth before the words pop up on the screen. Unfortunately I don't have the original source code with me any more but I opened up the game in AGI Studio and the code below appears to be what controls that part of the game:

Code: [Select]
if (v41 == 1) {
  set.loop(o1,1);
  set.cel(o1,0);
  start.cycling(o1);
  v41 = 2;
}
if (v41 == 2) {
  v42++;
  if (v42 > 10) {
    v42 = 0;
    v41 = 3;
    set.loop(o1,0);
    set.cel(o1,0);
  }
}
if (v41 == 3) {
  v41 = 4;
  reset(f15);
  v21 = 4;
  print.at("\"Ah, hgh, eh, hmpf, er ...\"",4,25,12);
  v21 = 8;
  print.at("\"Hah!! I almost forgot how to speak for a second there.\"",3,20,17);
  v21 = 8;
  print.at("\"Well, how you doing young son? Welcome to Adventure Park.\"",3,20,17);
  v21 = 8;
  print.at("\"Adventure Park? I thought this was a beach!!!\"",3,2,17);
}
if (v41 == 4) {
  set.loop(o1,2);
  set.cel(o1,0);
  start.cycling(o1);
  v41 = 5;
  v42 = 0;
}
if (v41 == 5) {
  v42++;
  if (v42 > 10) {
    v42 = 0;
    v41 = 6;
    set.loop(o1,0);
    set.cel(o1,0);
  }
}
if (v41 == 6) {
  v21 = 8;
  print.at("\"Good heavens no! It is far worse than that!\"",3,22,17);
  v21 = 20;
  print.at("\"You are now part of the game my friend. You can't leave until you "
           "collect the fourteen gold coins and place them in the ruby cast.\"",2,15,23);
  v21 = 26;
  print.at("\"Of course, you'll find it much harder now that the equipment "
           "isn't being maintained. Blow me down if the caretaker didn't just "
           "up and jump off that cliff into the void.\"",2,10,28);
  v21 = 8;
  print.at("\"Darndest thing I ever did see! (Stupid git)\"",3,21,17);
  v21 = 8;
  print.at("\"So where abouts is the ocean?\"",3,2,17);
  v21 = 20;
  print.at("\"There is no ocean here young man. We only have a lake, a river "
           "and a waterfall. This here is desert sand, not beach sand.\"",2,15,23);
  v21 = 16;
  print.at("\"By the way, I'm the gate keeper and I'm probably the only friend "
           "you've got in this world.\"",3,17,23);
  v21 = 8;
  print.at("\"Good luck on your quest.\"",3,22,17);
  observe.horizon(o0);
  accept.input();
  player.control();
  v41 = 0;
  reset(f48);
}

In the original source code I would have given the variables and flags more meaningful names. It looks like v41 is controlling what part of the sequence of movements it is up to. It looks like it uses different loops for different parts of the sequence. It starts with loop 1 and cycles through that and then when v42 (a second variable) is greater than 10 it stops cycling and switches to another loop. It then displays some of the dialog text between the two characters and after that it starts cycling through loop 2, sets v42 back to 0 and then increments v42 on each cycle, once again until it reaches 10, at which point it displays some more dialog text.

So it is using v42 to count how many game cycles the loop has cycled through and when it reaches a certain value then it stops the animation. I guess this is an alternative to end.of.loop. I suspect that the loops that it is cycling through are very short loops that simply open and close the mouth, so perhaps using end.of.loop felt a bit awkward to me to use for a short loop and I simply left it to cycle through the loop for ten cycles.

594
One suggestion that applies to AGI (but unfortunately not to SCI at the moment) is to look at the source code for the original Sierra games that you have seen this happen in. If you can remember the room in LSL1 where this happened then you can load that game up into one of the AGI editors such as WinAGI or AGI Studio and look over the source code for that room to see how they did it.

AGI has a 1-to-1 mapping from source code to compiled byte code, so tools like AGI Studio and WinAGI can do a pretty good job of reverse engineering the source code so that you can read it. I actually wrote the very first tool to do that kind of source code decompiling for AGI. It was a tool called SHOWLOG (Show Logic). I don't think many people used it at the time (around 1997) because it wasn't long after that that Peter Kelly released AGI Studio with the same feature. Peter and I were working together at the time to reverse engineer AGI and he used a lot of what I discovered with SHOWLOG to build the LOGIC support in to AGI Studio.

595
AGI Development Tools / Re: PICEDIT 1.3 Milestone 3 released
« on: August 28, 2011, 01:29:15 PM »
Thanks for the feedback. I would have replied sooner but I was away on holiday over the last week. Yeah, ellipse drawing would be useful. AGI pictures don't support that natively but I could in theory add a layer of logic on top within the editor that knows how to convert the ellipse into a series of short lines. Once it is drawn though it would no longer be editable as a ellipse. It would from that point on become a series of lines. Do you think that would be fine?

There are probably other tools such as rectangles and other things that can be done in a similar way, but the same comment would apply to them, which is that it would become lines once drawn.

596
SCI Development Tools / Re: SCI Decompiler?
« on: August 16, 2011, 02:33:10 PM »
No, not yet. I haven't really been focussing on that over the past few weeks. I've been trying to get another milestone release of PICEDIT out before I go on holiday for a week. I've probably still got another 3 or 4 milestone releases to go for 1.3, more than I initially thought I'd do. I decided to release more often so that at least something gets out there for people to look at. And that is just version 1.3. I still have grand plans to add SCI0 picture support for version 2.0 of PICEDIT, which would be the next release after 1.3. The 1.3 release is mostly about playing catchup with the rest of the AGI and SCI pictures tools. I think that a dual AGI/SCI picture tool might be unique, especially if it supports things like import and export between SCI0 and AGI.

So for now the SCI syntax quest is on hold. I did add that sample SCI code that you found to the end of my Syntax page on www.scriptinterpreter.com though:

http://www.scriptinterpreter.com/syntax

What I was attempting to do with the Instruction Set page (http://www.scriptinterpreter.com/instruction-set) was to build up a table of all the SCI instructions, work out their percentage of appearance within the games and then based on the conclusions of the Syntax page try to work out what original SCI source code would have compiled to each of the instructions. Some instructions are obviously used very often but others are used exclusively for particular scenarios.

597
AGI Development Tools / PICEDIT 1.3 Milestone 3 released
« on: August 14, 2011, 01:32:16 PM »
Today I built and released the third milestone release of PICEDIT 1.3. This gives people a chance to see yet more of the new features I've been working on for 1.3. Note that this is just a milestone release and I plan to release more milestone releases before the final 1.3 release.

http://picedit.googlecode.com/files/picedit-1.3M3.jar

The new features in this milestone include:

* "Open Recent" option in the File menu to re-open one of the last four opened pictures.

* Proper background image toggling. It is now possible to load a background image and then toggle it on and off without having to reload the image again.

* Reorganised the menu system so that it makes more sense. For example, toggling grid lines and dual mode are now under the View menu since this is more standard. The Special menu has gone.

* Drawing tools, navigation, delete, visual screen selection, priority screen selection are all now also found under the menu.

* Split out the status bar and the tool bar so that they are no longer part of the main picture panel. This allows the picture to be separately zoomed in and out.

* Window maximise and resizing is now supported. The window size is no longer tied to the zoom level.

Let me know what you all think. I am very keen to hear your feedback and suggestions.

598
AGI Development Tools / Re: PICEDIT 1.3 Milestone 2 released
« on: August 10, 2011, 02:35:08 PM »
Regarding the drawing controls turning off, I am starting to recall this a bit better now. I realise it was only a few weeks ago, but I now recall finding and fixing the issue that you described, probably a couple of days after I released that milestone. It should be sorted for the next milestone release, which I hope to have ready in a week or two.

599
AGI Development Tools / Re: AGI Studio Help
« on: August 08, 2011, 02:03:47 AM »
I know a little bit about LOGIC programming. I wrote around 15 or so rooms for my demo game The Ruby Cast. There are a lot of people with a lot more experience that me though, people that have finished coding multiple full games.

When you do start asking questions, it would be good to ask it on the AGI Syntax Help forum. The reason for this is that it is still empty, so you'd be the first poster.  :)

600
SCI Development Tools / Re: SCI Decompiler?
« on: August 04, 2011, 02:43:11 PM »
Yeah, I have a link to the archived version of my old web site on my new web site (www.agifans.com). I was glad indeed when I found that archive.org had a copy of it. I also used to have an old VIC 20 web site but I suspect that one is a bit too old to have been archived. I wrote a VIC 20 emulator back around the same time I was writing the AGI tools. Actually I ended up writing it in Pascal, then C and finally in Java. It was another one of my spare time projects at that time. I had grand plans at the time of writing an AGI like adventure game system for the VIC 20 to prove just how much you could do on the VIC 20 with the benefit of todays technology.

It is a shame that a lot of the old SCI and AGI web sites are no longer accessible, and that they weren't archived. Before the Internet, I used to log on to BBS (bulletin board systems) and chat in adventure game forums there. I even started writing a series of text documents entitled "SCI Examined" that I uploaded to various BBSs in New Zealand. Obviously the exposure was fairly limited. It was a record of my attempts at the time to hack SCI. I ended up focussing more on AGI and left others to look into SCI.

Pages: 1 ... 38 39 [40] 41 42 ... 50

SMF 2.0.19 | SMF © 2021, Simple Machines
Simple Audio Video Embedder

Page created in 0.047 seconds with 20 queries.