|
Post by Mystery on Nov 1, 2024 10:53:25 GMT -5
Alright, it's about time I get back into the GCS groove and what better place to do it than this totally not almost completely dead message board. Let's go! This one will be at a very slow and steady pace, but I think that's better than me planning to really put all my free time into GCS and eventually not doing anything. I actually have one or two larger GCS games in mind that I want to make, but it's been ages since I've done anything worthwile with the engine. So here's the plan: To get some kind of routine going and to ease myself back into working with the GCS, I'll create a really generic GCS game as a practice project. The game will be nothing special, quite the contrary. I just want to get a solid routine going and make a game from start to finish before I decide if I really want to tackle something bigger. Title: Zero Target Engine: 3DGCS 1.3 (DOS) and GCSMenu (for the extra professional touch) Levels: 9 License: Freeware Release: When it's done (seriously, I'll probably only work 1-2 hours a week on this) To speed things up, I will really only use the default GCS assets to get the really generic 3DGCS look from the mid-late 90s. Enemies, Textures, Sounds, Music, Weapons - you've seen them, you've heard them and you love/hate them. This project will really just be a way for me to test out some ideas and to get used to the editor again. I'm not just rusty, I'm fossilized! So prepare for an onslaught of stupid beginner questions like it's 1997. I will try to create the most generic, stereotypical, worn out and cheesy 90s action FPS background story I can. Wish me luck Tasks for today: -start the dev log (done) -fresh install of GCS 1.3 -set up a new project -dust off the old manual -start the design doc I will try to post an update whenever I've made enough progress to show something or when I'm stuck.
|
|
|
Post by lgb3d on Nov 1, 2024 12:13:01 GMT -5
Awesome bro looking forward to it. When I started my dos project I told myself make four levels. But it was going so good it became five and so on don't get caught in development hell, you've got a good plan. I can't wait to watch and read your progress. Feels great to have a community here and others actively using the engine. Part of what was special with the GCS was not just what we made but seeing what other people make. So many different ideas even in its simplicity. It's exciting to see your post here.
|
|
|
Post by Mystery on Nov 1, 2024 12:29:21 GMT -5
Thanks I'll try to keep it simple, the levels will be small and the game will be short. The whole thing will most likely still take ages to complete, but at least I'm doing something. Meanwhile I'm already collecting ideas for the next two games...like that's ever going to happen, right?
|
|
|
Post by lgb3d on Nov 1, 2024 12:41:29 GMT -5
These projects always takes forever, a little passion makes things go a long ways. At times I have a ton of energy or time for it and others yeah I'm lucky if I get that hour a week or sometimes every two weeks.
Where I'm at right now I've got from point A to point B of my game done. So I'm going through filling in some of the blanks. A year or so ago I told myself, when the point B is finished in game it would be done. Not the case I left a ton of placeholders half implemented features and left a lot of polishing for the Final Phase. When it's done it'll be great, but these things seem to take forever. My hat's off to the kid who could make it from point A to point B back when we were young.
|
|
|
Post by Mystery on Nov 9, 2024 15:49:30 GMT -5
FloppyTapeGames Unleashes Zero Target: A New Breed of First-Person Shooter Featuring Cutting-Edge 3D Action and RealismMetro City, USA – August 1996 – FloppyTapeGames is proud to announce the upcoming release of Zero Target, an intense first-person shooter that promises to set new standards for graphics, gameplay, and pure 3D action. Developed using the latest in gaming technology with the Pie in the Sky 3D Game Creation System, Zero Target combines razor-sharp visuals with a thrilling storyline, redefining what players can expect from the FPS genre. In Zero Target, players are thrust into the role of Jack Steel, an elite ex-military operative forced back into action to stop Viktor Shadow, a ruthless criminal mastermind threatening to plunge Metro City into chaos. With a meticulously crafted storyline, dynamic environments, and responsive AI enemies, Zero Target offers an experience that players have never seen before, pushing gaming technology to the limits.
State-of-the-Art Features - True 3D Environments: Every level in Zero Target features fully 3D-rendered urban environments, from gritty warehouses to Viktor Shadow’s towering Shadow Fortress. Experience smooth, immersive movement with a realistic sense of depth, unlike any game before.
- Advanced Weaponry Arsenal: Players will have access to an impressive variety of weapons, from the close-range power of the Shotgun to the explosive Rocket Launcher and high-tech Goo Gun. Master the unique abilities of each weapon to outwit Viktor’s forces.
- Dynamic AI: Enemies in Zero Target are equipped with sophisticated AI, making every encounter a unique challenge. Viktor’s goons respond to your actions, forcing players to think fast and strategize in the heat of battle.
- High-Fidelity Sound Effects and Music: Every blast, explosion, and environmental sound has been meticulously recorded to deliver an audio experience that matches the intensity of the gameplay.
- Epic Storyline and Cinematic Experience: Follow Jack Steel’s journey through Metro City as he encounters dangerous henchmen, solves mysteries, and takes on Viktor Shadow himself. With in-game cutscenes and storyline intermissions, Zero Target weaves an intricate tale of heroism and high-stakes action.
A Word from the Developers“We wanted to bring players something they’ve never experienced before,” says FloppyTapeGames’ Lead Designer. “With Zero Target, we’re offering state-of-the-art gameplay and advanced technology to set a new standard in 3D gaming. This is not just another game—it’s an experience that FPS fans won’t want to miss.”
Prepare for the Fight of a LifetimeGet ready for the ultimate showdown. With Zero Target, FloppyTapeGames invites players to immerse themselves in the future of gaming and step into the shoes of Jack Steel, a man with nothing to lose and a city to save. Zero Target is set to launch on PC in early fall 1996 or when it's ready and promises to be the must-have title of the year. Zero Target is available for pre-order now. Don’t miss the chance to be among the first to experience the future of 3D gaming! ContactFloppyTapeGames Marketing Department Phone: 555-ZERO-TARGET
==============================
Don't listen to the marketing hype machine. This is how it's actually going right now and the kind of quality you can expect: (actual ingame footage )
It's not much, but I said I'd update on the weekend and at least I've got everything ready to go. GCS is working, got the manual on my nightstand (no, really) and my development plan laid out. I'll post at least one tiny update on my trash-game every week or more if I find the time. Please expect nothing, this will be a bare bones game as I re-aquaint myself with the engine again, working through the manual.
|
|
chris
Junior Member
Posts: 58
|
Post by chris on Nov 9, 2024 16:48:16 GMT -5
Oh man. I love everything about this. I've actually always wanted to make a parody GCS game. It needs the disembodied head of Alan Greenspan, a double ninja kick weapon, and an enemy that only says "Hold still so I can shoot you" but in various pitches. And of course, the promise of a full version, but don't actually make a full version. But I won't tell you how to do your job lol, you know exactly what you're doing
|
|
|
Post by lgb3d on Nov 10, 2024 0:20:11 GMT -5
This is absolutely wonderful, I know I'm not alone out here but seeing the screenshot. It's just so reassuring there are others out there in the world creating Cutting Edge 3D games with The Pie in the Sky GCS. Really looking forward to following this thread and someday getting to play a new old classic. Like playing industrial Killers for the first time.. so nostalgic
|
|
|
Post by Mystery on Nov 18, 2024 14:18:17 GMT -5
No new screenshots today, but I made at least some progress over the weekend. A few questions popped up, but the answer is pretty likely "no" since I've found nothing in the documentation: -the rocket launcher actually creates a rocket object in the game world, not a fake object as part of the weapon sprite like the goo gun does. Is is possible to have enemies shoot projectiles like that? -is there any way to utilize randomization in this engine, maybe via scripting? -I vividly remember having a bigger enemy library than just the ninja and floating drone and a ton of games have more enemies than those two. Did everyone buy the mega art pack or were there versions of the gcs that came with more enemies? Other than tinkering with the level editor I've been working on the *ahem* "story" for the game, writing some corny one liners to be displayed during gameplay and some longer texts for the cutscenes. So far it's fun
|
|
|
Post by lgb3d on Nov 18, 2024 15:28:17 GMT -5
Oh buddy that's a deep question.
First I got to say this weekend I thought something was wrong with my email I kept checking here and checking my email looking for the update on your game development. It's exciting to know somebody's out there making something.
I have gotten so close in various ways to achieving what you're asking, but not hitting the nail on the head and just getting overly frustrated. Not a couple hours of trying a couple years. there's a lot of super duper cool tricks you can pull off with a fourth enemy and the script. But consider this almost all modifications that you make to that script would have to function with all enemy types throughout game.
An example of a loophole where you could have an alternate movement or a window where a unique enemy type could have unique action. The difference in between an enemy that is flying or walking. And those sections that pertain to the Flying enemy you could add extra line of code, so that their action or existence is a little different than the normal enemy set but so much of the calculations and code pertain to all enemies that if you make minor or dramatic changes you have to consider that being a factor with all enemies throughout the game.
I have tried and tried to identify and spawn Rockets from fourth enemies I believe it is possible, but it's difficult to not only spawn object from fourth scripted enemy but to identify and call on the object type of the rocket or grenade or to modify them or their physics.
In the documentation there is a little section that talks about where those files could be modified. But I just haven't been able to figure it out and believe me I put hours into it..
Example the rocket has complete different physics compared to the grenade. But both the gas grenade and normal grenade are the exact same object when called on, difference being that they spawn different animations for the explosion in the end. Example my fire bomb grenade or normal explosion grenade are polar opposite in the result at the end but they both call on the same object and physics for it they have a banana throw and bounce off walls. I wanted to change not truly the physics in the grenade but the graphic that appears so that when thrown the graphic of the grenade reflects that of the inventory object. And that at this point in my mind is somewhat locked away although pointed to through the documentation there might be a way to access it but I haven't found it yet.
There are a lot of super duper cool things that can be done with the fourth script for the enemies, but so much trial and error it can get really frustrating. I have been able to make dramatic modifications to it but that took a lot of trial and error and time many failures a lot of learning..
One thing I did discover and I'm not going to remember the exact number now the file size for that enemy script has to fit within a bubble there's a maximum file size in kilobytes.
Another thing let's say we were able to achieve a fourth scripted enemy that launches Rockets, do you want all of the enemies to launch rockets throughout the entire game that could be cool but if you wanted diversity. You have to remember 90% of that script will apply to all enemy types throughout the entire game. The place where I was able to implement different enemy characteristics through action or movement is the difference between the flying enemy and the walking enemy. I modified the flying enemy type to still be a walking enemy, but in the codes that pertain to it pointing at it the flying enemy after it's identified that yes I am the flying enemy then I modify that code a little bit so it's action would be different than the walking enemy on the prior level. Therefore the walking enemy does not carry the characteristics of flying enemy..
There were a few different enemy types produced by pie.. but not a ton. On the other hand the community created a lot of them which are available on the Legacy GCS games that I believe Saturday night preserved. I downloaded virtually all of them. Many of which I am not using in my game but just to preserve for myself or Community future use I have copies of them on hard drives flash drives Etc.
The interesting thing I find with those enemy sets is later ones created by GCS gurus you can see in their script that they implemented pointing at little control mechanisms for the individual enemy type, example I don't respond to bullets but I respond to explosions I don't respond to a gas attack or what not. I touched on that topic and some of my tutorials in the past but I'm not exactly a wizard on it I just found and made my own way using some of that information and probably didn't do the best job in the world documenting it. But at this point my enemy Sports script and my enemy sets for my game are completely different than the typical GCS engine and what it is expecting so for my project I have to take that into consideration and Implement those graphic sets the frame number Etc. So for my game I have a complete different template for the animation the frames the movement compared to the original black suit Ninja. And that template is what I create my new enemies and guards from so that they all work with the fourth script I created.
A couple tweaks that I'm real close to getting but have not been able to perfectly execute yet guards who create inventory objects when they die. There's part of the fourth script that identifies an old code that allows the player to steal the uniform of the guard and wander around all sneaky. I've wanted to tweak that that it points to a different inventory type. Example the guard dies will the player can go take his gun now the graphic of the guard on the ground is just a body with no gun, or even more simplistic not changing the graphic of the Guard but when the player is near if he has room in his inventory it gathers his ammunition. Another one that I've feverishly worked on but not been able to perfectly execute is enemy knockback, I've got the enemies to bounce back or around when the player shoots them, but my math and identifying a number of units versus a location on the map is not perfect or accurate so it winds up creating hit and miss type results where now and then it bounces the guard back a little bit other times it throws him halfway across the level when the player shoots him. One cool mistake I made with enemy knockback is putting map coordinates in instead of a percent or volume of movement. So when the player shoots the enemy they bounced toward an area on the map no matter where they are located sometimes this can push them behind walls but in the end result if you hit them the right way with the right amount of force it sends them essentially to a black hole at the center of the map many times making them disappear like knocking them completely out of the world off the map and when they reappear they reappear at that location on the map it was very interesting mistake. Another one I feverishly worked on and keep jumping back to you failing taking a Hiatus and then trying again is getting them to spawn and Alternate it's bright as I know it's possible, but getting the code correct is difficult and using the code to point to a stored graphic or Sprite is difficult. Example when you shoot the enemies in Doom they display a stun graphic, but they spawn an alternate graphic that is randomized and its height and left or right of center of the initial enemy, the new Sprite represents the blood from where the bullet hit the guard. I've gotten super duper close but just not getting it right I know it's possible because I've did it in other ways through the game example animation that spawns auxiliary animation.
Sorry probably saying way too much.. so yeah I have really really tried with some stuff and I haven't given up on it all because I know it's possible I just have to find it correct way to point and execute. But some stuff I've given up on because my game is functional and doing more or less what I want example I don't need to have a separate object with different physical types for objects the player throws the player throws two types of grenades they both bounce the same and while in the air they display a graphic of a green ball I'm over it that's all that I needed..
As well thought projectile firing fourth scripted enemy I've tried and tried and tried and I'm just so over it. I really tried hard to create that in the 95 engine and was missing it I moved to the Doss engine and discovered so much more and felt so much closer and tried and tried with no desirable result near Miss good theories but just not getting what I wanted.
So to achieve what I wanted I had to think outside of the box, if I can't make the engine do it I have to trick the players mind to believing that it's happening. Some of that is level design, and some of it is the variance in enemy types.
Projectile firing enemy. Okay make him stationary if you wanted you can mess around a little bit with the enemies position, but example might rocket firing enemy just stands still guarding a specific location, and the level is laid out that that guard has a Kill Zone. The player must access through one two or three different ways all which that enemy has a script to identify where the player is and spawn and auxiliary animation of a rocket that travels the path.
One example of this is in a YouTube video of mine with rocket enemy there are three doors entering a room determining on which door you use the enemy will fire a rocket that direction that creates a large Kill Zone near entrance of door. But as well that animation traveling from the enemy to the door if the player winds up in that line that the rocket travels the rocket will still hit the player even before it has detonated meaning the player has this Narrow Path he has to travel but he has to be dodging Rockets or eliminate that enemy so that no more Rockets travel..
So the level design makes it feasible that those Rockets seem somewhat randomized making the player really believe that an enemy is spawning and sending Rockets. Where in reality it is a series of different FLD animations with some tricky coding..
As well to make greater variance in enemy type per level, I do believe it's possible to have more than one fourth scripted enemy per level but I'm just so over beating my head against the wall trial and Air to create new fourth type object that follows the same script from pygmyini.. so let's say I have an enemy set of a guy wearing a blue hat that walks around the level well place a few of them that stand and shoot place a few of them that are randomly walking and play some that just Garden area until identifying the player and walking. Well now I make an FLD animation using the exact same Graphics at the exact same dimension so it would appear it's one of the stand and shoot only guards, but give him a different weapon type and it would appear hey these guards have projectile weapons and guns on the same level.
An example of this is the suicide bomber in my game there's a few different scripts that I use for him. One where he will run toward the player and detonate his explosive vest creating a large kill radius that could kill not only the player but if the player avoids him and there's other enemy types or animations nearby kill some of those walking moving guards or modified those animations as they are programmed to recognize his blast type and coding. Okay so there's a suicide bomber who runs if that's all there was it would not blend in as well with the rest of the enemies in the level or game it would stand out, so I made an alternate script where he is not so willing to just run and sacrifice himself and he will try to preserve his own life by firing a pistol now he gives off the appearance of a stand and shoot guard but if player gets within a radius of him he will detonate his explosive vest creating the same effect as if he had run at the player based upon the different conditions existing around him maybe a guard walked into his radius or he is placed near another animation his explosion can create all sorts of variants.
I'm sure you've seen videos of my game and recognize I made my own unique enemy graphics for 4th scripted enemies. A combat tactical looking jihadist, and Mid Eastern guy wearing a white robe. Well if the player is on a level and only sees the one enemy type let's say white robe man walking around and a few other different animations that are standing shoot only is pretty obvious on this level there's truly only one enemy type and a bunch of animated objects that are positioned simply to trip up the player. So I started making more animation types using the exact graphics and dimensions of existing guards example on a level with the white robe fourth scripted enemy I have to have a few of the Tactical jihadist to blend from one level to the next that they are all in this universe together. And this gives other than the appearance to the player that there is a variety of different enemy Types on a single level.. that the universe and the enemy types have more variance than one or two Scripts, example if you shoot the guard from the front the same thing happens every time okay so make a different graphic for the side or the back okay on one level there's a different variety of death sequences. Well the FLD animations for enemies give you the opportunity to make that death sequence look a little different with the Enemy flying a different direction or receiving a bullet at a different location on his body. So if he seen him on one level and he always takes the bullet to the chest on the next level NFL D that makes you believe it's the same guard you seen on the prior level takes the bullet to the stomach. Or all sorts of different varieties of visual Carnage. The more of this that is going on and the more the player is bombarded you can really disguise what's going on and confuse the player into believing there's more diversity in the enemy types their actions and weapon types they use than truly is going on with the single fourth scripted enemy type that we see on each level.
Another way I have tried to blend it all together. If you have the white robe enemy on one level and you have him on another level it is the exact same graphic set, that's cool it's the exact same appearance of enemy. But the interaction player has when shooting the enemy demonstrates the exact same thing well I have all these flds showing that there's more variety. So instead of using the exact same enemy set for the white robe enemy on each level. Yeah copy and paste that enemy set to an alternate folder with an alternate name which is placed on a different level now it looks like the same fourth scripted enemy but you went through and modified some of the graphics example how he holds his gun the parents on his face or the appearance of him taking damage. So now on each level a fourth scripted enemy taking damage looks a little different but it's further confused by all the flds reflecting enemies at the Players already familiar with demonstrating taking damage different ways making it seem that the gore is a little bit more randomized and entertaining the player as each level each encounter I see something different if I shoot the enemy from the side or from the back from the front in different environments what not I see different outcome.
Another thing I did to free up the amount of level memory and allow myself more space for the animations of interaction player has with guard creating more diversity when the player achieves hits. I got rid of all the walking graphics from different angles and crated Graphics that appeared the guard is somewhere in between a walk and a run. That frees up a ton of graphics.
And since I modified the fourth script all enemy types have to follow that format but now for each of their death and different angles of them encountering that death I have all those extra frames of Graphics available to create more and more diversity. Yeah when they're walking around they more or less look the same and have enough frames of Graphics to make it appear like yes they're moving, but the real juice of the animation is when the player engages them and a truly show there graphical diversity..
So somebody might be able to figure out how to get a fourth scripted enemy to spawn objects into the game such as blood splatter inventory pickup or projectile weapon. I do believe it's possible but in years of trying I'm yet to get it. So the way I went about achieving these things is by smoke and mirrors and confusing the player by throwing so much diversity at them.
Another Goofy trick I pulled off to reduce the amount of level memory used on level where I have the water, the enemies graphic is smaller because I cut them off at their knee, meaning the images smaller less memory is used meaning that I can create more large or diverse graphics for when the player engages them, or forget about the enemy type freeing up the level memory means that I can cram more into the level..
He probably remember my cloaking device enemy from Windows 95 project other than when he is shot or is shooting at the player there's only four or five Graphics he is total for all of his movement little tricks like that really unlock the potential of how many other Graphics or things you can cram into a level because the enemy set is already so heavy on the level memory.
One more Goofy moderately off topic trick I've discovered. The level editor will only allow you to have 40 frames for an animation. But if you script the animation outside of the editor through a text document you can use more than 40 frames the graphics are what is heavy on the level but you can create an insane amount of diversity in a script different actions or reactions when you have more than 40 frames available.
Like you now and then I have a little bit of time to work on my project. And the more time I invest on it it seems redundant because I know what to expect, I'm testing testing testing two or three parts and I keep seeing it, I get used to it and it seems like there's not that much diversity it's too simple I'm too familiar with it. But now and then life gets busy and I take a little Hiatus from my project a week or two pass sometimes a month. Suddenly I have the time to play with my game again and I attempt a playthrough to recenter myself and get the right energy. And I am absolutely blown away like holy moly I made this this is not the typical GCS game it is Thoroughly entertaining. I forgot I put that in the game OMG that graphic looks radical.. a good example a couple weeks back I shot an explosive Barrel. After the initial blast a little flame stays on the ground for a bit if an enemy wanders next to that flame they catch fire. Initially when I made my enemy set I had one template graphic of an enemy flapping his arms around on fire. It was uniform through all my enemy types because I never modified the graphic. Well a while back I went through and modified the graphics of enemies on fire to reflect different enemy types. So there I was playing my game I shot a barrel and one of my white robe enemies wandered too close to the flame OMG I wasn't expecting the graphic of him on fire and it just looked too beautiful, and unique compared to the prior 10 minutes I had been playing the game and witnessed other guards catch fire, so that diversity is really where it's at and as craters sometimes we don't see our game through a fresh set of eyes like somebody playing it for the first time would.
But witnessing that really made me think other than modifying Enemy being harmed per level, the guard on fire yes I could be different per level but I want to make a different graphic based upon what angle the player Witnesses the guard on fire. Yeah it's cool to see a guard flapping his arms around with flames, but the diversity of having a group of guys at different angles suffering from that really makes the visual appearance so much more diverse. Example when my enemies get gibbed, at first yeah it was just a symmetrical object so no matter what angle you viewed it from it was a red splash but I changed it so at different angles it displays a little different Gib graphic so if a group of guards are coming at you at different angles and you were to give them it makes a whole variety of red splashes making each time you unleash explosion on enemy look graphically impressive and diverse.
I know this is not the answer to the question, but I hope this perspective helps even if somebody was able to discover how to create those things from the fourth scripted enemy, these techniques just add so many different layers of diversity that it makes the overall experience a little richer.
So keep up the good fight and if the engine won't let you do what you want to there's more than one way to trick the player into believing that it's happening, overload their mind with great diversity
|
|
|
Post by Mystery on Nov 18, 2024 16:00:48 GMT -5
Wow, thank you very much for taking the time to respond so detailed to my questions! Really great read and a ton of valuable information, fantastic! I'll definitely get back to your posting in more detail in the future! Yes I wanted to update on the weekend, but I completely screwed up my planning. Next weekend should be fine though and I'll hopefully make some more progress. Like I said, it's going to be a quick and simple practice game to get back into the groove and gather skill and knowledge for future projects...plural. Not sure if I'm going crazy here Reading about your game makes me so excited to play it one day and also work on my humble projects.
|
|
|
Post by lgb3d on Nov 18, 2024 16:20:25 GMT -5
Yes in the gcsc programmers documentation I forget which exact document but toward the tail end of one of them it mentions.. modifying the grenade or rocket I think it's after a section that explains the importance of the orientation of the weapon catalog example Ninja Kick has to be first the handle number for the shotgun has to be the handle number for the shotgun.. because the engine is expecting that script and the numbers associated to be exact like there's a keyhole that expects a specific key. Well just after that there's a little mention of where and how to find the projectile objects such as grenade rocket I remember a while back really grinding on that for a long time and at points feeling so so close. But missing it just not able to reach it although it discusses it and really points Us in the right direction. As well if you really read the script for the 4th enemies there are a lot of hints in there of what is going on as well as features from prior games pie in the sky made that are not being executed in ours meaning that code exist and if we do things right should be able to achieve. Just a rough example Chris showing us how to make doors that pivot on a hinge the engine was capable of that this whole time but unless you knew what numbers to put in the attributes boxes, we would never be able to unlock the potential of what the engine already had programmed capable to do. So in pygmyini.. it references guard becoming pick up object, and I believe that's a remnant of the player being able to take the uniform of the Guard which is only further obvious because the guard set has a graphic of the man laying without his uniform. But how do we program the guard to use that line of code is it something in the attribute box or is it a number that has to be called in the fourth script which would mean all enemies throughout the game would have that. I want to side with a number into attribute box that it's waiting for. As well the scripting technique for animations has a lot of similarities to the way that the fourth code is written, example 256 * this equals that. I think 512 is Branch when shot.. or something like that just a loose example, so in the fourth script to decode some of it you start recognizing familiar numbers. And start being able to read more of what that script is really saying. But the format and the execution is a little different than the typical animation script so I kept feeling like I understand this I'm close I'm on the edge okay second try third try fourth try okay I'm learning what doesn't work oh on the 5th try I got something weird to happen it didn't crash the engine. Well a day or two later still trying taking little notes I got all sorts of bizarre outcomes but not what I was looking for but a few of the outcomes gave ideas of wait I could modify this and set it up for a complete different scenario that I wasn't even trying to achieve. I'm a little bit more of the artist type yeah I'm high functioning autistic, but I'm and out of the box type thinker. So if we all look at these things with our own different perspectives the right type thinker might find the a equals B... but there isn't a right or wrong thought process when there's so much to be discovered. A lot of my discoveries were made accidentally trying to do one thing and discovering that I could do another and then exploiting the loophole. Example I was trying to achieve something that I had done with the Windows 95 engine but the numbers did not calculate correctly, but it resulted in an enemy animation that continued looping with a death sequence. And I thought to myself if I had the opportunity to have an injured enemy just looping I could create Graphics of flames. And a whole genre of reactions to a weapon that had fire became Incorporated in my game that was a complete accident. But I'd really love Chris to chime in on this because I have thought a lot about the question you've asked but I've never asked it myself. He'll probably tell us a equals B and exactly where a is and where to plug it in to get b. As for the enemy types there are a handful of GCS created enemy type Library, but even if you wanted to use an existing graphic I would suggest really looking at them individually. Example the black ninja riding around in the tank, or the ninja riding in the hovercraft. Look at the text documents that come with them and the references to the constant, as that is where you place that information to make that level enemy type utilize a specific function in the fourth script making it different than that on other levels. So if we are to discover how to make a rocket projectile firing enemy utilizing the constant for a feature that we do not desire would give us the ability to execute that projectile enemy on a single level instead of game wide. Anyways just thoughts and passed in here, I hope Chris comes through with the facts
|
|
chris
Junior Member
Posts: 58
|
Post by chris on Nov 18, 2024 17:44:27 GMT -5
As far as Forth enemies, I definitely defer to lgb on that, he knows way more about that than I do. Super interesting to hear that there might be some kind of way. One thing you can do is create an animated object that shoots other animated objects (although you have to create the fluid file outside of the GCS editor). However it would only really be able to shoot in one direction I guess and you would have to carefully control the environmental variables. Like maybe you're in a tight corridor or something so he has no reason to shoot a projectile anywhere but forward. Maybe have a barrel you can duck behind to avoid his rockets, etc. You could create an animated object that cycles a universe register from 0-5, then loops. That might work for most things. In my GCS TSR/trainer I'm working on there's a proper random generator implemented. At least in my later release GCS version, there was only the ninja. The Mega Pack added something like 9 enemies including the drone, hovercraft, green guy, red guy, etc. I feel like there's a copy of the GCS on archive.org that has the whole Mega Pack included. Oh man, do I have an idea for you Sorry to disappoint, I wish I knew more about the Forth stuff but I know next to nothing. I'm also probably more on the autism side when it comes to how my brain works, which is why I've found ChatGPT incredibly useful at doing the analytical thinking for me. I would highly suggest setting up a ChatGPT account, feeding it all the 4th files, and prompting it with something like "These Pygmy Forth files are from a DOS 3D game engine used to define enemy AI that patrols XY coordinates, finds and attacks the player, and can be killed. Please analyze these and help me understand how it works." And maybe following up with with additional questions. It will probably give you some confidently wrong trash answers but sometimes it just works and will give some really profound insights. I've been using ChatGPT to reverse-engineer several parts of the engine so far, help me write assembly code, etc. Sometimes it works, sometimes it doesn't. It wasn't able to help me crack the pfont.dat mystery, I had to do that myself, but it did attempt to do the exact same thing I did, it just had no real way of "seeing" the results to verify it was on the right track. Eventually playing with offsets myself I "saw" the character set appear and I instantly knew what it was doing. I gotta say I love the possibility of getting enemies to drop items. You're right, this was something Lethal Tender did, the engine might very well still be able to do it, and you may be able to change the pickup number, etc. Also you bring up a good point about multiple Forth guards in a level. This may actually be possible but I haven't tried it. You may be able to create a solid in the objdef file with a completely different definition file, although like you say, you might be stuck with having to use the same AI for both, not sure. I think you can't do this with the GCS editor because there were concerns over two guards taking up too much memory, but at least at a glance in the GCSP manual it doesn't actually say you can't have more than one. I think Lethal Tender had multiple guards in one level.
|
|
|
Post by lgb3d on Nov 18, 2024 18:43:08 GMT -5
Yes in Pie in the Sky game there were multiple enemy type on single level. I think the thing is the memory limitation and keeping a barebone number of Graphics to facilitate the volume of different enemy types and keep it within the level memory limitation. I would want to assume that then enemy type would be identified by the engine similar to the Windows 95 engine by adding its specific handle number from level object text into an attribute When selecting the enemy placed in level. Since the AI is game wide and independent from the library that the enemy graphics and command come from I believe they would all follow the same script having two separate Scripts might be possible but I think it would be very taxing on the games presentation. One way I thought of getting enemy to spawn auxiliary items Sprites projectiles is that they are within the bubble of the enemy set they are not in the object Library what they share in common is the object text but they are completely separate from being able to call something from the basic library or the weapon Library. So let's say there was an inventory item that they were going to produce their script would have to call it from the enemy set itself so that would have to be incorporated in that file that is added for the enemy in the object text, and the same for the blood splatter or projectile. I think one of the problems I was having before when trying to achieve this was trying to call on a handle number in the object text or from an alternate folder such as the weapon folder. Where the enemy is legitimately searching for handle numbers and commands within its folder as that's where the fourth script is pulling all of its information from is the enemy folder itself which is included stitched in as a resource in the level object text. Yes I've had limited success with enemy knockback creating some unique results so I know it's possible but my math is a little askew. Making bizarre movement patterns like you're standing south of the Guard shooting North and when you hit him he moves West it's like no he should move backwards further north. Another thing I was tweaking with and had limited success but not getting the desired outcome was yes I can have a variety of different death outcomes with a fourth guard, but if he is on fire or if he ducks to miss a rocket I can still harm him with any other type of weapon. But if he is dead on the ground he will no longer have any interaction with types of weapon. I scripted my FLD animated enemies to be able to be gibbed even if they're dead bodies. And I would desire for my fourth guards to have the same effect. So I've had a little success there but not pulling it off perfect so at this point I've left that out. I'm wondering if guard deaf should read more like object text incorporating handle numbers for animation. Then I would be pointing at the correct handle number. And similar if the projectile handle number was incorporated in the enemy folder and in guard death given a handle number unique, it might be potential to call on it. But on the other hand how are we going to scrape the physics to head the opposite direction. Most of the physics are already there such as bumping into walls or not bumping into a wall That's elevation is not zero.. grenades bouncing off walls that all exist, but it's new origin and destination.. like in the code when it says guard aim angle, somewhere in there some of that code would be the modified version of the projectile where it seeks out the players current location range Etc and identifies if the player is visible or behind wall. Once upon a time I thought about asking the internet questions about 4th and it was quite the search before I started finding any real quality information because it's kind of a really old language that's not commonly used but very powerful systems and intelligent programmers do still use it. But part of it is understanding the different syntax and structure.. but the major part is understanding where the numbers are coming from before you calculate them. Other than pygmyini I'm forgetting the name right now as I'm at work but there's another fourth script that has very little to no comments and appears to be the link that connects the engine and the world with the guards script... but it's not as readable, it's a series of letters and a few numbers. Some of it I can almost reference by checking with the script that I'm more familiar with but still a lot of it leaves me scratching my head. Yes that chat GPT AI I've heard a lot of people using that to create check code what not. But you're right it doesn't matter if it's wrong or right it just might give a little different perspective or insight to understanding. FYI that graphic for the potential storyline. That is so nostalgic if that popped up on a screen I would start looking for the coin slot where I put my quarters to play.. Lgb = Greg
|
|
chris
Junior Member
Posts: 58
|
Post by chris on Nov 19, 2024 8:03:48 GMT -5
So I'm actually looking a little bit at the pygmy Forth files for the first time in decades lol. It's much easier to read in VSCode with color highlighting than it was with DOS EDIT On first glance it seems to share a bit in common with assembly. Very gnarly language lol. I bet ChatGPT might have some success helping you tweak some of this code. I see some stuff about reading universe registers which is super interesting. I wonder if that's used for anything. Also a random number generator.
As far as having a dead guy drop an item, I see :roborelease with some code commented out. Apparently it turns the guard into a pickup. Might try uncommenting that code and see what happens!
Also I see that angles are expressed from 0-65535 (as they are in the rest of the engine, which GCSP refers to as "theta"), so maybe if you wanted an enemy to fly backwards from where he's facing, you could try subtracting 32767. But I see what you're saying, if you try that with an angle under 32767 you're gonna end up sending him flying who knows where, so you'd need to add everything under zero back into the number, if that makes sense. But also who knows, maybe there's a function written in here that does this calculation automatically? I also see the :potshot function that bounces the player back when hit, maybe some of that can be adapted to make the enemy bounce back, I dunno. I appreciate that there are comments everywhere, even if some of it is esoteric. I gotta say this block of code made my morning. No idea, lol.
I'm only just now looking at this stuff but I see some interesting possibilities to play with.
I actually have a Bad Dudes arcade game in my house lol, along with a Neo-Geo 6-slot and several other machines. Yeah I was definitely an arcade junkie back in the late 80s to 90s, good times.
|
|
|
Post by Mystery on Nov 19, 2024 12:17:56 GMT -5
Yeah, same here with the Arcade stuff. Still have my MVS (1 slot only, booo) and HyperNeoGeo64 ready to go, but I hardly ever use them anymore these days so I'm thinking of selling them. I also found the GCS with the preinstalled assets on archive.org you mentioned. Might put those in the next version of my archive as well, if I ever get enough material to warrant a new version (which is unlikely considering the massive amount of stuff we found in the textfiles search engine). Now that I'm working on my own stuff again, I kind of wonder how much work most people put into their GCS games in the mid to late 90s. Considering most games were released in 95/96, with a lot of people getting their GCS from Santa in 95, I think the average development time can't be more than a handful of months tops. Probably some outliers on both sides of course. I bet Gregs current project is the Duke Nukem 4 Ever of GCS games, but it already looks far more promising than what we got from Gearbox in the end, so no worries there
|
|