It starts...

Housing for low income families.

Moderators: nuero, Ando

User avatar
Shadow Mage
Naked Zombie Sean Connery
Posts: 163
Joined: Sun Jul 30, 2006 6:18 pm

Post by Shadow Mage »

Welcome to Z2. =D

Err, I'd get rid of the energy engine actually. If people with guns are tracking you down I doubt being winded will actually KILL me. The guards might kill me by shooting me. Being winded might slow me down, but shouldn't kill me on its own.

At the same time, the solution to that would be to slow the rate of movement down drastically if it where possible. But I doubt it.

I'd also remove switching between poison darts, or killing guards that you don't need to. Because if another guard finds a dead guard, he would alert everybody to your presence no?

Having said that I guess you might have to bump somebody off, but that shouldn't be your train of thought in a stealth game.
Meh, can't beleive how little I come to these forums now.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

You're probably right. It was impossible (or so required so much space it wasn't worth it) to do that. Maybe the removal of that engine plus the player clone will really help the space of the file. While I like the silencer engine idea I also have a feeling this will take up too much space as the guard always checks if there's a silencer or not on the weapon after being shot. Since it IS a stealth engine primarily, the gun should always be silenced... And more preferably be a tranquilizer with little to no ammo to encourage the player to sneak up on guards and use the environment whenever possible.

I'm taking out all those other engines now. There... With just the stealth engine and all it's programming it's about 16kb. I tuned down the ranges, making them inside the gameplay area again, but they still go fast enough for the player to not notice them. The guard's been tuned down a little as well... CQC isn't as descriptive and the flag 'knock' is replaced by simple #lock and #unlock commands. All the distractions are still included. In the game, every environment will have it's own distractions... So not all of these will be featured at once. The guard therefore won't have so much programming to do (fewer of those 'hiding' programs which is activated when a distraction is). The 'swinging' CQC move was removed, though I admit it was a pretty good idea! The guard still has to pause to reload... I don't plan on changing this as during alert mode this is the only time after he calls for backup you're going to be able to get him!

It may also have something to do with adding boards to complex system engines... Well, either way I'm working on that 'level test', making a three board world with test levels for how the guards will work and all. There WILL be easter eggs, as first suggested by Fagmuffin! Easter eggs are a great way to keep the replayability up and just to mess around with the game without breaking it. STAIN won't be called 'FRAGILE' when I'm through with it...

:safe:

Anyways, this is coming along. I'm good at giving levels some texture, but never at actual drawing in ZZT. I'll make my best attempt at a title screen and see what you guys think...

I think the player clone has a lot to do with it. When I add it in KevEdit and then check the file size, it's jumped almost ten kb! Good thing I got rid of the Energy Engine then. 15kb... Split down equally, to where the guard has the basics and no distractions... 5kb. When using only four of the range objects... Yes, only FOUR for open spaces, less than two can be used for indoors per guard (discuss this below)... If he kept one distraction, lost most advanced CQC programming, and had a long patrol route while using two range objects on either end of the hallway and a third that 'peeks around the corner' when he walks up to the corner... 6kb. It looks like I've taken it down a notch without losing the stealth flavor!

I'm also working on a hallway project, Fagmuffin. I'll get back to you on that soon. I've already got it looking good and working fine... It just needs some corner-wall distractions and it'll be done.

Actually, I just came up with an idea I'm experimenting with... One range object per guard not including any 'corner peek' range objects for interconnected hallways and a 'keep to the line' programming style... ZZT's filesize takes into account object programming, object number, and board number/size... For the object programming size part I can put guard's patrol route on one long line and use the /i/i/i#end technique for commands to keep them on as few lines as possible... This is because ZZT 'reads' the programs line by line, so each individual line is a little more in the way of kb than a command. At least, that's a good theory and it appears to be mostly a fact since the /i/i/i#end technique actually works.
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
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Sorry, long time since I've been making updates. I'll be using Eccentrix to upload my ZZT files now since it takes ZIP files as well. I've been out of town and running around a lot.

I've been trying out the stealth engine again... I'm currently editing the lines so that memory space can be saved. To add to it, I'm removing many range objects. Why? I forgot this, but when they check if 'contact' they check all directions. Meaning you only need one range object per 4-5 spaces. In long hallways it's even better.

I put all the direction coding together in one line with /i's completing it. This ought to work very well when I'm finished with it. The guard's toned down programming is only for certain levels. Other levels will have different additional programming, like the distractions viewed in the Alpha Engine. This next version I'm working on will have several test 'levels' and if all goes well, I think I'd have done enough work to move the engine up to the Beta stage.

:whole:
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! <3
Posts: 1772
Joined: Tue Mar 11, 2003 12:00 am
Location: Washington

Post by Dr. Dos »

Visit the Museum of ZZT
Follow Worlds of ZZT on Twitter

Apologies for the old post you may have just read.
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. »

It's rarely a bad sign when three days is considered a long time without updates. :keen:

Keep up the good work! It sounds like the optimization/cramming-engine-into-ZZT's-limits is going pretty well.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Alright, still working on it. Can't get anything to upload off of this computer (I'm using my laptop since I'm out of town and it crashes when I try to upload or download things without using a CD). I'm using a rewritable CD to put the newest changes to and then I'll put it on my good computer back home (which won't be until this Saturday).

I'm going down the list in MadTom's article to see if there is anything else I can do besides squeezing together as many commands as possible onto one line. Another thing I did was get rid of some of the writing, making it so the text shows at the bottom of the screen. Maybe a little annoying but it gets out of the way from gameplay and lets you know what you're doing.

First off #bind. Although it copies the coding of an object it would also make the object with #bind in it do the same thing at the same time of another object. While binding some ranges might work for wider hallways it's a bad idea otherwise. Luckily, less range objects are needed than I thought.

I'm now working on changing the #send commands to #[object]:[message] and the /i's into #cycle 10 /i/i/i/i/i #cycle 1 as it says. It does require less programming and I can jam the #cycle 1 at the end of the /i line like I do the rest of the programming. This will really save space on many objects at once!

I'm removing #end at the extreme end of every program as I agree... It doesn't make sense for it to be there (it's kinda a habit for me to put #ends at the end of every program but I'll break it for the absolute last program).

While putting a #if command on another #if would save space, it's also difficult as sometimes certain requirements are not neccesary to be met for the program to run, only a single requirement instead of two as this trick works. Still, I'm using it where I can.

Everything else I'm still working through. I'll keep you all posted!
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
Commodore
fgsdfs
Posts: 2471
Joined: Wed Mar 12, 2003 5:44 pm
Location: :noitacoL
Contact:

Post by Commodore »

Nova wrote:and the /i's into #cycle 10 /i/i/i/i/i #cycle 1 as it says. It does require less programming and I can jam the #cycle 1 at the end of the /i line like I do the rest of the programming.
careful with this, if the object receives a message in the middle of the idles it'll execute the rest of its commands at the slower cycle.

One trick I've used in my RPG engine is for locked objects. I create my own #end command that unlocks the thing at the same time.

@object
:x
#unlock
#end

Code: Select all

#x
[more code that locks]
#x

So you just use the command #x to end and unlock the object in one stroke. you could use #restart but that actually takes up a little more space than making your own!
*POW* *CLANK* *PING*
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Okay, I think I know where to go with this. It's been a week since I last worked on it but that was because I wasn't home. So now I'm back and preparing to work a little more with the programming. I'll try and keep the 'mashing' limited especially on the range objects who need their speed, but I'll also be implementing other space-saver techniques as well as taking out some of the complete features.

No more swinging and such of course though I might add those to a 'bonus' levels file. Removed energy engine, and most of the distractions are tapping on objects or walls that are 'right around the corner'. In order to save up on the guard walking long distances I set up a little smaller coding making it so that only nearby objects can alert nearby guards and that guards further out wouldn't be effected. This was going to be added in the final game anyways, but it's a good idea to start early on the engine.

Just a little more work and a few computer restarts (the keyboard and mouse stop working unexpectedly) I'll have it spic-and-span ready to go into the test level mode and ready for some beta testing.

Also one more thing... The one range object idea of my was brilliant I think but I don't know why I didn't think of it before *smacks himself in the head*. Objects in ZZT don't normally have a one-way facing program so the range should be able to make contact with the player in any direction, thus lowering the need for so many range objects, and making it possible to lower the amount of distance it needs to go (or use repeating movements to a set end with some kind of invisible wall or something) especially in long hallways as those particular levels I've found require little programming for the range object though the guard still has to patrol long distances unless I set him somewhere closer to the player's entrance.
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
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Hmm

Post by Nova »

Okay, it's been a long time since I've updated but here it finally is. I've spent the month working on a few other projects but kept thinking about ways to make STAIN a little less... Big. I have the answer now! I've developed a second version of the engine that doesn't utilize so many range objects and works relatively well. I can find a few glitches once in a while with the range objects but I will fix them.

It's working pretty good and I'll get the update uploaded here soon and a link posted here. For larger areas I suspect the guards won't be guarding larger areas and even if they were, they would have a range similar to the guards in Commando, meaning limited to mostly in front of them and to the sides.

The ranges to the north and south are put under/over one another so they meet in the middle of the hall or alleyway. To be seen north you have to sneak around the guard or go around one of the buildings (which you can't do in the engine yet, but it's obvious how to make it do that anyways). To be seen south you only have to be standing in his field of view when he starts walking south (you can watch where the guard is facing with a 'guard monitor' in the bottom left. These will normally be invisible but for the sake of the engine I made it visible).

The lights in the alleyway are like spotlights and dangerous even if you're sneaking up behind the guard. Perhaps a shadow or something reflects on the ground (you won't see it though) that alerts the guard to your presence, but despite the direction he is facing he'll turn and open fire on you.

I will probably go through and update it with a 'shadow engine' as you guys suggested and perhaps a silencer/open gun selector... You know, the silencer keeps you from alerting other guards while without it, it will alert the guards in the immediate area. As for indoor areas, I think the guards won't hear it from other rooms but an alert will sound bringing in emergency troopers.

The file is currently 6.83 kilobytes at it's most basic form. So as the games I've seen a lot of work put into (Chrono Wars 10 part 1 or Frost for example) are around 210 or 230 kilobytes, the engine should work pretty well. I've got the story for the game developed and I have a few ideas for how to progress it in-game by allowing for multiple paths. Of course, this would require at least two seperate game files but hey, it's a game I'm putting a lot of work into!
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, nice to see another update on this project! Keep it up - it's sounding good.

You might have to be careful with the shadow idea - if the player's shadow isn't displayed, you'll want to be very clear that an area contains a light source and is dangerous. Otherwise, the player might be given away by a shadow, not know what happened, and chalk it up to a bug in the game.
User avatar
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Nope, no problem. The lights are visible on the sides of buildings and can even be shot at, thereby removing a problem. I think I'll update it again after this post so the guard is alerted by the lights blowing out. Another 'CAUTION' mode if you will. Anyways, here's what I got so far, in basic terms:

http://zzt.org/upload//NewStain.zip

As I say in the text file on there, the in-depth stuff you saw in the original will be more area-specific and not as common everywhere, neither will it have such complex programming. I'll do the more in-depth stuff after I get the basic stealth down, which I think I've done just about right.

If you downloaded it earlier, redownload it. I discovered the bullet program needed another #end =P
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
Nova
Star
Posts: 23
Joined: Fri Jun 22, 2007 6:29 pm

Post by Nova »

Okay, yet another update, but I won't post it right now. I've tested the same program with fewer objects... This time two guards in a VERY squeezed-in alleyway with two range objects on either side, but there is some rubble keeping them from seeing too far. They patrol at the same time and all share the same guard 'keeper' objects (in the corner of the screen). While I also removed a lot of unneccessary programming, it was still over 6 kb.

I'll link to a newer version here soon, with the guards patrolling in two different directions and utilizing two keeper objects ('keepers' are actually a series of several objects, though I believe I can meld the 'alarm check' object with the 'looking south check' object).

I'd like to try and get it down into the 5 kb range so I'm looking for everything I can meld into another, but I try not to do this too often as melding objects requires a lot of timing and apparently ZZT can also tell when you want to time something, and adds it to the file size. But right now it looks like I can make a game out of it, it's not too difficult to set up (I had to go back and change the north & south check objects to west & east unfortunately =P) and everything is working pretty well. With the alley lights out, the guard is stunned in this upcoming version. I'm pretty sure there will also be other ways to stun or get rid of guards as I develop the game.

I'll see what I can do and report my findings here. Thanks for helping out guys
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