AGI Newbie need some basic help

Jocke The Beast Hello. First off I would like to introduce myself: I'm 25 years old and I live in Sweden (that's why my spelling & grammar sucks). I've been programming Qbasic for almost 10 years and have made 8 finished games (full versions). I love the old Sierra games and I will now try to make my first AGI adventure game. That's about it!

I'm a complete newbie. I've downloaded the latest version of AGIStudio and some cool fan-games. Now I will try to begin to learn how to become "a succesfull AGI-game maker" ;)

- Do u guys have some basic tips/hints?
- What's the hardest part in making a AGI-game?
- In what "end" should I start ?
- What are the utilities I need/should use ?

I noticed that PicEdit was kind of "old-styled". Is there anything better to use when making "screens" for a AGI-game? The AgiStudio was very good and I liked it's features and design.

Well,that's all for now. I look forwards to a nice time at this board and I hope you'll be patience with my "newbie-questions" and bad english ;D



Zonkie Hi,
I'm glad you're interested in AGI. It's pretty simple once you learn the basic commands, the hardest part is probably drawing the background images. At the moment PicEdit is the best you can use on Windows. You can also draw images in paint and convert them using the program "vector", but to get good results you have to follow some basic rules when drawing in paint. There is a tutorial on it that was published earlier on this board.

Probably the most basic tip to give is: read the tutorials. There are a lot of tutorials out there right now, many of which are on specific details. Read through them, try working from the template game, and if you get stuck with a command, have a look in the help file of AGI Studio. You can find many tutorials on Nick's AGI page.

The very first thing you need to do is to write out the story in detail including quests so you don't get confused with it later on, but I guess you know that since you've already done games. It depends on how to start, some people do all background graphics first, while others work themselves forward room by room, adding views, logics, backgrounds and sounds as they go along.

Good luck with your game!

Zonkie
bokkers Check out all the tutorials and make sure you understand about the priority bands. That was my worst problem in the beginning. Only after I read some of the tutorials I saw why Sierra did it the way they did.


bokkers
Jocke The Beast Thanks for the answers,guys!

I think i understand how the 'priority bands' work but it's hard to use picedit I have to say... I'll probaly have to create 10-20 screens just to learn how the basics works...

Is there any specific Tutorial you guys can recommend ? It would be great with a step-by-step tutorial that explains/learn me how to create the common things (a room with door,items,npc's,triggers etc.).

bokkers If you have questions about Picedit, go ahead. It really isn't that hard, it only looks weird in the beginning.
Zonkie I think one of the best tutorials, the one that I learned all my basics from as well, is the tutorial game by Peter Kelly (http://members.ozemail.com.au/~ptrkelly/agi/docs/index.html). Once you finish it you should be able to program doors and items without any problems.
juncmodule I have a question that may help Jocke...

What is the PicEdit in the windows port of LinuxAGI Studio like?

I'm going to be starting a AGI version of my game in a month or so and I've been digging around a bit. It doesn't seem like many people on this board are using it...or they are just quite about it.... Is there a reason that it's not widely used?

later,
-junc
sonneveld I don't know if it's QT or if it's the way it was made.. but it's very unresponsive when drawing pictures in QT AGI Studio. I had plans to try and update it but QT's free version only lets you compile with VC++.

This is something I don't have and I don't feel I should have to buy anything to compile a C++ program. This is why I moved to wxWindows for GUI programming.

- Nick
juncmodule Yeah, I checked out that QT thing, pretty expensive. I can't say I would understand why anyone would use anything but wxWindows. Free is good.

Well, in that case I guess using vector is your best bet Jocke. I understand the frustration of drawing in PICEdit, you will still have to use it for priorities, but at least you can do the bulk of your drawing in the program of your choice. Just be sure you pay attention to concepts like priorities and understand them before beginning any drawing.

good luck,
-junc
Jocke The Beast Thanks for all the help! Seems like this is a nice board :)

Ok, here's more questions (my english sucks,but I hope u guys still understand what I write):

- I've noticed that there's a list of Messages in the bottom of every LOGIC (logic.001,logic.002 etc.). I almost understand what it's for (message 1=Hello, when adding print m1 the text "Hello" appears, right?!).
But my question is this: Do I have to use the messages (in the bottom) or can't I just write every print "Blablabla" I need to use ?

- Phew!Picedit... Well, do I understand u guys correctly if it's possible to make a 168x160 picture (PCX,BMP,GIF) and then convert it to a "picture.001" ? I still have to add the priority lines I guess. Do I just re-paint the priority lines in the PRIORITY screen then ?

- When should I use the 'Rebuild Vol' ? What happens if I don't ?

- More tutorials you guys recommend ?

Thanks once again!






AGI1122 Well it doesn't really matter if you use print "blahblah"; or use the mX stuff at the bottom. After you compile it, it automatically adds those texts to the bottom of the logic.

Yes it is possible to convert (PCX,BMP) into picture resources, there are tools at http://classicgaming.com/agisci/index.shtml for doing so.

And I would recommend my tutorial at http://www.agigames.com/site.php?page=agiprog
Jocke The Beast Thanks. Now I've downloaded alot of utilites for picture editing and also two music programs (mid2rol and rol2agi)!

I checked out your tutorial. Nice work! Still a bit hard but I guess it's best to read and practice,read and practice and so on...

Zonkie About PicEdit, adding the priority lines is pretty easy if you disable visual drawing, enable priority drawing and just draw the priority lines by tracing the ones that are on the visual screen. Sounds complicated, but is pretty easy. Maybe you have already learned about seperate visual and priority drawing if not: If you left-click on a colour, you choose it for the visual screen, if you right-click, you choose it for the priority screen. So if you left-click on the off-button, meaning you turn visual drawing off, you can choose the priority colour with a right-click and draw along the lines on the visual screen, but it only shows in the priority screen.
Jocke The Beast Thanks for the hints! That makes it more easy to make priority-lines and such. Thanks!

Ok, more questions:

- Sometimes a catalog appears that is called 'SCR' that includes .txt-files of LOGIC's and also 'defines.txt'. What's all that about ? In some games, in the first LOGIC the text/script "include defint.txt" is printed. Why? Is it any good and do I have to use that ?

- After "playing around" with some utilities I tried a utility that is called VECTOR ( by:Erik Agsjo) which makes it possible to make a picture in PCX or BMP and convert it to a AGI resource. First of: Anyone have some good hints/tips to make the colors convert in a smooth way ? In the readme-file it says that I can add this in the command-line :
option -p <prio> uses the given file as the priority map

I can't manage to do this and have u guys used this with any succes or is it a waste of time ?



Zonkie The "source" folder in each game is very useful when you're still working on the game. For example, you can define an object at the top of a logic, such as #define door 01.
When you enter the code that animates the door, you don't have to put animate.obj(o1), but can put animate.obj(door), which makes it a lot easier to understand. This text is saved in the source folder. Everytime you compile a logic with either F9 or F10, animate.obj(door) would become animate.obj(o1) and the define at the top would be deleted. The source folder basically contains a neat copy of all the logics for you to work from, including defines and comments.

Defines.txt is also very useful. Here you can give variables, flags etc names so that you don't have to define them at the top of each logic. For example, it also defines the flags and variables that you can use. So if you have used the defines.txt and called it in the header, you can write if(new_room) instead of if(f5).

About Vector: It is a nice tool, but you have to be careful on how to draw the original image, otherwise it might be distorted when it is converted. I haven't tried the priority thing yet, but I would think it is rather useless, because what good is a priority screen with no visual screen? I would think it is easier to have a visual screen first and then draw the priorities.
jelleghys I find Vector very useful, all pictures my game contains, are drawn in paint (Have a look) and then converted with Vector...

the -p [prio] is an option, use vector this way:

vector -p priority.bmp visual.bmp picture.xxx
xxx = a number between 000 and 255 I think.
This will create a picture containing both the visual screen and the priority screen.

you have to be careful on how to draw the original image, otherwise it might be distorted when it is converted

Just set your height = 168 and width = 158 and then everything should be just fine.
Jocke The Beast Thanks for the answers,guys! Really usefull to get some help here.

Ok, more questions:

- Which Sierra AGI-games are full-working within AGIStuido ? I noticed that Larry1 had some problems...

- Is it legal to release (freeware) a fanmade agi-game with a the start file (sierra.com or mygame.com) ?

- The template game seems very usefull. Do u guys use the template when making your games ?




Joel About messages and defines:

You can use either:

print("Hello");

or

print(m1);

with m1 defined as "Hello"...

I would recommend doing the print(m1) type thing if you have a message that may be printed in several different places in a logic. For example, you might have a "You're not close enough" message that will be printed if the player tries to open a door from too far away or tries to get an object from too far away.

In that case, it's better (as far as code maintenance goes) to have something like:

#message 3 "You're not close enough."

And then use:

print(m3);

anywhere the message needs to be printed. An even better approach is to do what I just showed and add a define at the beginning of the file like this:

#define MSG_TOO_FAR_AWAY m3

And then use:

print(MSG_TOO_FAR_AWAY);

when printing it out.

About the template game:

I'd say the vast majority (like 99.99999%) of the fan games out there are based off some version of the template game.
sonneveld really? I was under the impression that the current compiler grouped together messages that were the same?

I'd agree with you if you were talking about commonly used message fragments though (ie "you can't do that because ..." or something)

- Nick
Joel what I mean is that it's better, maintenance-wise, to have this code:


#define MSG_TOO_FAR_AWAY m3

if (said("open", "door"))
{
print(MSG_TOO_FAR_AWAY);
}

if (said("get", "key"))
{
print(MSG_TOO_FAR_AWAY);
}

return();

#message 3 "You're not close enough."


than to have this code:


if (said("open", "door"))
{
print("You're not close enough.");
}

if (said("get", "key"))
{
print("You're not close enough.");
}


Because if you want to change the message to something else (e.g., "You're too far away." or "You can't reach it from here."), then the second code can become a maintenance headache while the first is easy to change.
sonneveld ah sorry, I understand now. I was forgetting about maintenence.

- Nick
Jocke The Beast Thanks for the answers! Really nice people here...

Anyway, can anyone answer theese 2 questions:

- Which Sierra AGI-games are full-working within AGIStuido ? I noticed that Larry1 had some problems...

- Is it legal to release (freeware) a fanmade agi-game with a the start file (sierra.com or mygame.com) ?

jelleghys
- Which Sierra AGI-games are full-working within AGIStuido ? I noticed that Larry1 had some problems...

There are some problems with opening certain logics. Have a look here: http://www.mega-tokyo.com/forum/index.php?board=4;action=display;threadid=2025


- Is it legal to release (freeware) a fanmade agi-game with a the start file (sierra.com or mygame.com) ?

I thought it was legal as long as you don't... sell the games / make money out of them.
Zonkie I was thinking about this for a while as well: If you enter your game in a competition of games for a magazine, where you can actually win a prize if you send in the best game, would it still be legal to send it in with an interpreter? For which editor would it be, for which wouldn't it?

I was just wondering if any of you knew...

Zonkie
Andrew_Baker Well, if Sierra holds a patent on the resource formats, you wouldn't be able to submit any component of your game, I would imagine.

That notwithstanding, it would probably constitute copyright infringement to package the original Sierra interpreter with your game.

However, it should be perfectly legal to distribute one of the next-generation interpreters like Sarien and Nagi.
sonneveld Sierra holds patents on some SCI stuff (like path finding and some sound stuff) but nothing that I know of on AGI.

Copyright applies to source and written works as far as I know. Somehow it applies to compiled code as well. Things are still kinda hazy on reverse engineered stuff.

If you're putting it on a magazine CD.. you would want to use NAGI or Sarien. Many people's machines don't run DOS programs properly now.

- Nick
Kon-Tiki Sorry to be so late about this: but Jocke: for making sounds, try using AGISE. It won't give all those problems converting gives. You can get it here.

-Kon-Tiki-
Zonkie So if i sent it in and gave it in with NAGI as the executable, that would be alright with you? Which copyright information would I have to include, like a readme file that mentions you as the author of the interpreter?

Here the other programs on those CD's are really weak, I guess just about any fanmade game could win first place (which is a free game of your choice :D).

Zonkie
sonneveld I'm not sure what the license I used for NAGI dictates.. but I would be happy just with my name somewhere. If you distribute SDL.DLL with it (which you probably will for convenience), make sure you include that SDL readme file cause it's required if you package it with anything.

- Nick
Jocke The Beast Kon-Tiki: Thanks! It's downloaded. Phew! Now I must have downloaded all the utilities I need for programming/developing a AGI-game :)

All:
Ok,another newbie-question:
- What is NAGI and Sarien ? My guess (after checking out some agi-related sites) is a that it's a executable file (same as sierra.com) only that someone else made it...
But does that file (nagi or sarien) make any different to a AGI game's code/appearance ?



sonneveld Sarien and NAGI are interpreters which execute AGI game data. This is very similar to how Java works. You have java class files and a portable Java interpeter.

NAGI runs under Windows and Linux whilst Sarien runs under every platform under the sun (apart from Mac OS apparently) :)

- Nick