It starts...

Housing for low income families.

Moderators: nuero, Ando

User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

It starts...

Post by Nova »

While I realize my idea is not new, the creation of a FLEXIBLE stealth system for ZZT is at least a new attempt.

I've been watching the community for years now but never got involved. Don't know why, guess I was just too lazy. Anyways, I'm not new at all to ZZT... I had a crappy old computer which I used to work on ZZT games with. I would download ZZT to an old floppy and put it onto that computer and then later go back with more floppies to download games. The computer was so old it only ran DOS and couldn't connect to the internet. But boy, did I have some good game engine ideas that really worked.

I'm back in the ZZT scene and starting a new project called STAIN (Stealth Tactical Action In a Nutshell if you want). I started working on this before looking through the threads for some assistance and views on the creation of a stealth engine. I only found one: JDMSonic's project last year. His idea of using Metal Gear Solid as a reference was just like mine, only I was just going to work the basics first and if that worked, get the more advanced stuff in.

Anyways, my stealth engine works well, with very few bugs, but it's a little annoying at points. I'm trying to find another engine that will work, but no luck. I have a working one on ZIG thanks to the FOCUS OBJECT that the code in there uses (thank goodness!) but for ZZT it's a lot more difficult.

Here's how it works... The gaurd patrols in two directions (maybe more if I get creative)... Every time he faces one direction he activates a set of three or four range objects (number varies depending on size of location) that will continuously check for the player. Once alligned with these invisible objects (they fade into the floors obviously) the objects will rush towards the player and if they don't come into contact, they go back and resume normal programming depending on what the gaurd object is telling it to do. When the gaurd turns another direction, he deactivates that set of range objects and activates another set on the other side. It's really kinda simple and programming the objects isn't too difficult and time consuming (I suppose binding them would definately help).

If the range object #if contact's the player, it immediately alerts the gaurd and changes into a fake with the floor. That's the basic premise of my stealth system. Takes up less than 3 kb for just the test engine. Still, that's adding the additional programming I put in.

The gaurd has 3 modes:
- Patrol
He follows a set patrol route. If the player gets behind him the gaurd object will set a flag (one of only 3 I've used so far!) DEFENSELESS and then touching him will have the player attack the gaurd and knock him out. The range objects surrounding you should be off because the gaurd is facing the other way so he doesn't know you're there. But if he turns around, you're spotted.
- Caution
When causing a small disturbance, like knocking on a corner wall or rock, or if you step into a puddle or disturb a flock of birds, the Gaurd follows a preprogrammed route to the disturbance, leaving him open for attack from behind as he walks. However, a few cycles after he gets to the disturbance, the Gaurd 'turns' activating all the ranges of the patrol behind him and cannot be attacked, checking if 'contact' then the gaurd spots you, delivers a punch, and starts up Alert mode.
- Alert
This mode is simple. If you tried to attack him in melee you will be knocked back and this mode starts. If he turns and the range objects of where he's seeing catch you while not hiding behind something. The range objects immediately die or #become the ground and the Gaurd sends an invisible bullet object to start moving and attacking (more on that later). The gaurd takes a step towards the player, calls in backup (leaving him defenseless as he reaches for his radio) and finally keeps moving slowly towards the player. The Gaurd can be taken out with a tranquilizer dart or by using the environment (knock a stack of crates onto the gaurd, create a smoke field by shooting at a console or a pipe, or using a flash grenade). The stack of crates will knock the gaurd out of course, the smoke field and flash grenades will stun the gaurd leaving him DEFENSELESS again to take out with a melee move.

The Bullet
The bullet object is simple. An invisible object that after being activated by the gaurd moves towards the player quickly and changes into an icon similar to that of a ricochet off the ground. If the ricochet is in contact with the player, it takes health (and if it cannot take 10 health, it takes 5 as all fighting is damage is done in multiples of 5). It stops, becoming invisible again for a period of time before starting again. It does this so it doesn't follow the player around a wall or anything. In smaller spaces therefore it stops earlier. Then it starts up again. Simple coding but it works.

That's all I've got so far. The distractions are the 'knock on wall' and 'knock on rock' commands by touching said objects, the flock of birds that activate when you walk near them, and the puddle of water which makes a sound, becomes fakes, and alerts the gaurd. A swamp level is in the making to start with making the game difficult even at the beginning but giving it a learner's privelege of making the gaurds slower to react and easier to avoid.
Cameras use less than 2 range objects most of the time, so if you're quick, you can get into the camera's blind spot and sneak around it.
The ranges are #cycle 1, but aren't any faster except in the more difficult levels because the player should get a chance to run to a hiding spot out in the gaurd's range and still make it if he's fast enough... Otherwise, one could be strategic and wait for the gaurd to patrol in the other direction to make a run for it.

Any ideas, comments, suggestions... All are welcome. I hope to be an active and contributive member of the community! (... Yeah)
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
User avatar
Schroedingers Cat
We must invent teleportation!
Posts: 721
Joined: Mon Jun 19, 2006 11:35 pm
Location: Idaho, Wisconsin

Re: It starts...

Post by Schroedingers Cat »

Nova wrote: I've been watching the community for years now but never got involved. Don't know why, guess I was just too lazy. Anyways, I'm not new at all to ZZT... I had a crappy old computer which I used to work on ZZT games with. I would download ZZT to an old floppy and put it onto that computer and then later go back with more floppies to download games. The computer was so old it only ran DOS and couldn't connect to the internet. But boy, did I have some good game engine ideas that really worked.
Wow. That sounds a lot like me. Exactly like me.

I hope you can pull it off. STAIN certainly is an interesting idea. Hurry up and make a game before I rip off your idea.

Also, "guard", not "gaurd."
User avatar
Schroedingers Cat
We must invent teleportation!
Posts: 721
Joined: Mon Jun 19, 2006 11:35 pm
Location: Idaho, Wisconsin

Post by Schroedingers Cat »

Also welcome to <s>hell</s> the community. Enjoy your stay.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Egh...

Post by Nova »

Okay, spelling mistakes... Anyways, you rip off my idea, you pay me 6 bil plus patents!

Actually, the whole reason I'm creating this system is to see who would be interested and add it to their games. But with one condition:

I GET TO ADD IT TO MY GAME FIRST!

STAIN will have a plot I've had in mind to write for several years now but never got down to actually writing it. I thought changing it into a ZZT game would be really sweet so here I go. Expect to see me make another game (more like turn-based strategy) soon. I don't know what I'll call it but I have a ZZT engine set up called the 'mecha-nization' engine that starts you off having to build bases and such in the confines of a planet and then as the years move on, technology gets greater and thus so does the building range, allowing the building of space stations in orbit and what-not. If anyone seems interested in this idea, just say so. I don't mind people borrowing ideas off of me, as long as they say where they first heard of the idea from!

I really just want to hear what people think and get suggestions and ideas. Something I've known a lot of people to do (so I'll follow suit as long as they're not jumping off cliffs)

I got my stealth engine idea off of Metal Gear Solid, so it's more of a transition of that game to ZZT. As I've seen, not the first (JDMSonic had tried the same). Speaking of which, anybody know if JD finished that game?
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
gingermuffins
Posts: 371
Joined: Fri Sep 01, 2006 1:30 am

Post by gingermuffins »

hello, welcome to z2

your idea sounds neato; maybe you could show us an engine demo so we can see how the engine works, similar to what dr. dos did a little while ago with his zombie engine. Then we can give suggestions easier etc
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Okay

Post by Nova »

Tuxedo Fagmuffin wrote:maybe you could show us an engine demo so we can see how the engine works
I shall do that real quick. I'll come back and edit the post with a link to it as it's uploaded to a file hosting server. I'll also organize it a bit and give it a readable name just so it doesn't look like a bundle or randomness.

I found a bug in using the #bind command for the seperate range objects. Some need to go longer distances than others (the ones further from the guard) and it can be problematic when the guard gets in the way and the range objects are returning, as they all attempt to 'go around' the guard stopping on range object further in the middle of the board than I would like. So no using #bind for this... Each range object DOES actually have it's own individual coding although the coding is actually all the same.

If this link doesn't work then I might as well forget it. My Eccentrix account wouldn't take .zzt files and my Yahoo! Briefcase is SAYING that Public sharing is limited to 'premium users' though my My Documents folder is saying 'Open to the Public'. So here's the Y!Briefcase link. If it doesn't work, tell me so I can create yet another server hosting account somewhere (or just use my Freewebs account).

http://us.f13.yahoofs.com/bc/44397858m2 ... GB2qRqaRiM
Last edited by Nova on Fri Jun 22, 2007 10:20 pm, edited 1 time in total.
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
User avatar
Dr. Dos
OH YES! USE VINE WHIP! &lt;3
Posts: 1772
Joined: Tue Mar 11, 2003 12:00 am
Location: Washington

Post by Dr. Dos »

That's pretty neat sounding.

Also I'm a sucker for engines that have abbreviations.

See: TULIP. It would have been nice if I actually made a game with that.
Visit the Museum of ZZT
Follow Worlds of ZZT on Twitter

Apologies for the old post you may have just read.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Ah

Post by Nova »

Well, I'll edit the previous post when my super-slow computer which I made it on gets to the forum link... Anyways...

Scrap the diagram. It won't work on this. Bah, GIMP (the painting program Linux uses) doesn't have any workable line tools and I can't find out how to change the size of the font. Blegh...

Generally, this is just the test engine world I'm using, not the entire level or anything like that (I have the level designs drawn out but I have yet to work on them until I get all the engines and stuff down pat) So when it's uploaded, don't expect the whole level.
Last edited by Nova on Fri Jun 22, 2007 9:44 pm, edited 1 time in total.
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
User avatar
Dr. Dos
OH YES! USE VINE WHIP! &lt;3
Posts: 1772
Joined: Tue Mar 11, 2003 12:00 am
Location: Washington

Post by Dr. Dos »

You need to use code tags to format the spacing for that correctly.

It makes the difference between

t h i s

and

Code: Select all

t           h       i s
Visit the Museum of ZZT
Follow Worlds of ZZT on Twitter

Apologies for the old post you may have just read.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Okay, thanks. Anyways, it's uploading now. Any ideas or suggestions before it gets posted up?

What's the 'code' for splitting text again?

And what's TULIP stand for anyway? :D
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
User avatar
Quantum P.
Level 17 Accordion Thief
Posts: 1433
Joined: Fri Sep 12, 2003 1:41 am
Location: Edmonds, WA
Contact:

Post by Quantum P. »

Hey, welcome to the community!

Your ideas for a stealth engine sound neat. I tried to make a stealth-based game at least... twice, I think. Neither attempt really got very far. My advice is exactly what you're doing right now: plan the engine thoroughly before you make the game. And once you think you've got your engine together, use it to make a rough test level, one that you don't plan on including in your final game. This gives you a feel for how well your code scales from a one-board, one-guard test to your average level. If it's too hard to slap together even a simple level, that's a sign that your engine needs more work.

And I haven't heard anything about JDMSonic finishing his game, which is a shame.
User avatar
Quantum P.
Level 17 Accordion Thief
Posts: 1433
Joined: Fri Sep 12, 2003 1:41 am
Location: Edmonds, WA
Contact:

Post by Quantum P. »

You use the code tags thusly:

Code: Select all

This is how my engine works. Blah blah blah...

[code]
your text diagram goes here
And that was a diagram of my engine.
[/code]
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Stupid Upload Process

Post by Nova »

The link to the download of my engine has been posted. Here it is: http://us.f13.yahoofs.com/bc/44397858m2 ... GBx_KxaRiM
If it doesn't work, just say so. I wouldn't be surprised if it doesn't... My luck


I forgot my username for Eccentrix and when I requested my username, it said there was no account registered to the email address I put in. But when I registered trying to reuse that email it said 'one account per email only' so that POed me bad!

I'm making probably my 3rd Gmail address (I run into problems like this A LOT) and using it. So this is going to slow down the process of getting a link up here a little longer.

And I understand what you're saying now Dr.Dos. Like

Code: Select all

This?
Only it's actually...

Code: Select all

T h i  s !
And yes, guard is mispelled as 'gaurd' throughout the programming, but that SHOULDN'T matter as the player can't see the programming without editing it

:hmmmm:
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
User avatar
Dr. Dos
OH YES! USE VINE WHIP! &lt;3
Posts: 1772
Joined: Tue Mar 11, 2003 12:00 am
Location: Washington

Post by Dr. Dos »

The link doesn't work. Just use z2's game upload thing. We'll just not add it with the next batch of uploads.

and TULIP was Talk/Use/Look/Inventory/Pick Up. For good old fashioned inventory games.

But you'd use the spacebar to cycle through verbs instead of doing things like ?+I
Visit the Museum of ZZT
Follow Worlds of ZZT on Twitter

Apologies for the old post you may have just read.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Finally... Okay, here's what I got. Remember, this is just an Alpha version of the engine. If you find any bugs or something, help me out with fixing them if you can, or at least tell me they're there and what they are.

STAIN Alpha Engine

So far I'm about to make several edits and additions which I'll send in as soon as I can. Here's a quick listing:

Water puddle : I forgot to add this to the Alpha Engine, though I meant to. It's on a seperate file that I updated after I had saved it as STAIN.zzt a few days ago.

Wall corner objects : Also meant to add this at first... You can tap on the wall to get the guard's attention much like the rock.

A quick edit of the #char coding for the guard just in case he gets stuck as an exclamation point of a question mark (the question mark in particular). I added these #char commands in just to keep the game from looking too 'stiff'

The guard can be killed while in alert mode if you catch him defenseless while he's reaching for his radio. He spills blood as well (don't know exactly how I'll get the other guards to realize they're looking at blood, but I'll probably figure SOMETHING out... The only time you'll see the color red in the game is for the dark red horizon of the destroyed city and blood). You can also shake him around a bit to get some rations and refill your health.

Also, the backup doesn't come in the alpha version as it was just a test of the stealth engine and not the entire bunch of engines put together. I'll add the backup in there too.

I'll also be adding a 'body-shield' ability, so if you've managed to make him defenseless and the cavalry has arrived, you can use him to stop the backup guards from shooting you, at least for a period of time before the guard you're holding passes out.

Adding the pipe object so you can shoot it and create a smoke-screen if you need a quick way to make the guard defenseless for a little while or when fighting the backup guards.

Later:

I will add a quick change inventory system... It may be possible to change your weapon while behind some cover. I have the alpha version of the system worked out... Touch the cover, such as a rock you're staying behind, and it would switch weapons for you. This would require a few objects sending messages I bet, but the difficulty is how it will keep up with your ammunition and store the number of ammo for each weapon so when you get your weapon back it would still have the same amount of ammo. I'll be experimenting with that.

There will also be the stack of crates. Dunno when I'll get to these. Knocking over the stack of crates and then making sure the crates are landing on the guard is a little bit more time-consuming programming which I'll get to work on as soon as possible... It will obviously use the #if blocked command when knocked over but either it needs to fall quickly so the player can't cheat and jump in, or some counter measure such as if the player is in the falling crate's way, he takes the damage instead (I can use the #if contact command for that). You should be able to use the crates as a hiding place afterwards, so I'm guessing the base crate (the one below the rest) will check if it's blocked to the north after you touch it and if not it acts as a hiding spot, and the others will #check in places too. This means you should only be able to knock crates over from the south, but I could probably vice-versa the code for knocking them over from the north.

Additional fun: I'm planning to get a few nifty details out... At intervals the bullet will stop firing as the guard reloads, another DEFENSELESS moment, and if the bullet hits, it'll change it's icon to look like a little drop of blood flying off the player (since the ricochet color is also red). I can't get the bullet object to continuously change colors (there is a way I know from ZZT Encyclopedia which I might add in).

Soon I'll have a fourth or fifth flag made using the enemy's uniform. Ah, the good old usage of disguising yourself as the enemy! :D There will be limitations however: Like in Commandos, you can't be too close to an enemy guard or he will notice you. This means at least one or two range objects forward from where he's facing he should be able to spot you in the uniform unless you're wearing an 'ID tag', but in order to save as much space in flags as I can I might not use the ID tag. After disguising yourself, the body would immediately disappear as you cannot get the enemy uniform if you've already alerted the guard.

How's that for a bunch of ideas? :D
Last edited by Nova on Sat Jun 23, 2007 1:52 am, edited 1 time in total.
STAIN (Stealth Tactical Action In a Nutshell)
My first engine released in the ZZT community, and soon to be my first game released as well!
Thread link: http://zzt.org/fora/viewtopic ... 5084#55084
Post Reply