Duke4.net Forums: Original GAME.CON fixes - Duke4.net Forums

Jump to content

  • 4 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Original GAME.CON fixes

User is offline   Darkus 

#1

After all this time I think that the old GAME.CON file need a facelift, that's why I threw myself into that task. I spent a lot of time in it, and now I think the file is ready to be distributed.
Even if it's only a bugfix for the original game and those changes may seem insignificant at first glance, it improve the game in some way.

For the story, I only wanted to fix the kill counter, then I begun to fix some bugs that the original game has, looking more and more things that are non-functionnal because of malformed code, hardcoded things that are not behaving the right way... And finally ended up modifying almost the entire file.

How to use:
It's a replacement of the old GAME.CON file, so simply extract the new file to the Eduke directory. That's all.

- It should be compatible with custom maps (it is made for that)
- Also fully compatible with the HRP, both polymost/polymer.
- It should be also compatible with mods wich use the original game code (like Duke Hard episode)
- Absolutely not tested in multiplayer. Use it at your own risk.


Attached File  fixed GAME CON.zip (86.97K)
Number of downloads: 530
[Last updated April 10th]

Note: The download in this post is actually outdated (as the changelog & bugs list), the most recent version which contains the latest fixes is located here: https://forums.duke4...post__p__335121

Changelog (not really complete):
Spoiler


Bugs that I did not managed to fix:
Spoiler


What's planned:
Spoiler

11

User is online   Danukem 

  • Duke Plus Developer

#2

 Darkus, on 03 October 2016 - 01:43 PM, said:


- pig cops: when hit, the shooting animation is not reseted (that was pretty annoying, especially when you shoot them with a rapid fire weapon).



Is this really a bug? I thought the pig had the APIGHIT stun animation that was there on purpose, and is supposed to interrupt his shooting when it happens.
0

User is online   NightFright 

  • The Truth is in here

#3

I think it's similar to other enemies like the Octabrain. Removing this behavior seems unwise to me as well.
0

User is online   Danukem 

  • Duke Plus Developer

#4

 NightFright, on 05 October 2016 - 10:08 PM, said:

I think it's similar to other enemies like the Octabrain. Removing this behavior seems unwise to me as well.


He didn't remove it completely, he changed the code so that the pigcop cannot be stunned when in the middle of his firing animation (either standing or diving). I still say it should have been left alone, though.


Overall, this is a very nice set of fixes and would make a good base code when starting a new Duke 3D mod. In fact, we would like to do that with the Duke Spookem mod. We will give credit, of course.
0

User is online   Danukem 

  • Duke Plus Developer

#5

 Darkus, on 03 October 2016 - 01:43 PM, said:

- Trooper: can be spawned with different colors using the RESPAWN sprite like intended in stock maps


Is there any reason to not make this apply to all respawns? Normally I do that, and I've never heard of a problem with it.

 Darkus, on 03 October 2016 - 01:43 PM, said:

- The shrinker not always work with big sprites (mini bosses for example), I tried many ways to fix that, without success...


What's going on here is that the shrinker is actually a radius effect weapon, and it has a small radius. So small, in fact, that if you hit the clipping area of a large sprite, the blast may not reach the base of the sprite.

define SHRINKERBLASTRADIUS 680

But if you make the blast larger, then it will start to effect groups of enemies who are close together. One thing you could try is giving certain actors a code block for "ifwasweapon SHRINKER" in addition to "ifwasweapon SHRINKSPARK". I'm pretty sure the SHRINKSPARK is the radius weapon and SHRINKER is the projectile traveling through the air. If an enemy can be shrunk by either one of those, then any direct hit should shrink it even if the blast isn't big enough. I have not tested this.
0

User is offline   Tea Monster 

  • Polymancer

#6

(Puts on pedant hat) Wouldn't the recon vehicle spout blood anyway - from the pigcop pilot? Remember it's not a drone, it's a piloted vehicle.
0

User is online   NightFright 

  • The Truth is in here

#7

And it's better to have some kind of feedback that you hit the vehicle - I dunno if it spawns debris when hit, but if it doesn't, maybe that's an idea for a code change.
0

User is offline   MetHy 

#8

 Darkus, on 03 October 2016 - 01:43 PM, said:


- Bosses: Reduced rocket damage for mini-bosses, and removed self-damage



You mean it takes more rockets to kill a mini BLord ? I'm not too sure about that, and it falls more into rebalancing than bug fixing.

Still, is a nice set.
0

User is offline   Jblade 

#9

 MetHy, on 06 October 2016 - 03:13 AM, said:

You mean it takes more rockets to kill a mini BLord ? I'm not too sure about that, and it falls more into rebalancing than bug fixing.

Still, is a nice set.

I'm sure it means the mini-boss versions of Cycloid and Overlord don't shoot full-strength RPG rockets.
0

User is offline   MetHy 

#10

Oh right, I didn't think about those since they're pretty much useless.
0

User is online   Danukem 

  • Duke Plus Developer

#11

For the record I think it's correct to not have vehicles spawning blood -- when you shoot a car that has someone inside, blood doesn't squirt out the bullet hole in the car chassis.

A suggestion: you should add the smooth movement flag to some of the sprites (NEWBEAST and TANK come to mind) using the spriteflags command.
1

#12

A legitimate question is: If this an edit for fix for an original CON made by 3D Realms for the clean vanilla game, It does not confer the status of "Unofficial Patch" to it? We would be allowed to distribute on the main site then?

This post has been edited by Fantinaikos: 06 October 2016 - 09:53 AM

0

User is offline   Darkus 

#13

 Trooper Dan, on 05 October 2016 - 10:25 PM, said:

He didn't remove it completely, he changed the code so that the pigcop cannot be stunned when in the middle of his firing animation (either standing or diving). I still say it should have been left alone, though.

Originaly, when you hit him, he can switch between three states: being hit, shoot while standing and shoot while crouching. The problem was he could restart the same shooting animation several times, making him shoot projectiles at very fast rate especially if you hit him with the chaingun. I fixed this by avoiding that the animation could restart, or switching betwen stand/crouch while he's shooting, and he can still change to 'being hit' animation when shooting, the probability is the same as before.

 Trooper Dan, on 05 October 2016 - 10:43 PM, said:

Is there any reason to not make this apply to all respawns? Normally I do that, and I've never heard of a problem with it.

Oops, I didn't notice this... I'll see that for the next version.

 Trooper Dan, on 05 October 2016 - 10:43 PM, said:

What's going on here is that the shrinker is actually a radius effect weapon, and it has a small radius. So small, in fact, that if you hit the clipping area of a large sprite, the blast may not reach the base of the sprite.

define SHRINKERBLASTRADIUS 680

But if you make the blast larger, then it will start to effect groups of enemies who are close together. One thing you could try is giving certain actors a code block for "ifwasweapon SHRINKER" in addition to "ifwasweapon SHRINKSPARK". I'm pretty sure the SHRINKSPARK is the radius weapon and SHRINKER is the projectile traveling through the air. If an enemy can be shrunk by either one of those, then any direct hit should shrink it even if the blast isn't big enough. I have not tested this.

I already noticed that it's a radius effect weapon, but I prefer to leave the blast radius as before. I also tried in many ways 'ifwasweapon SHRINKER' but it does nothing, I don't know why :D

 Tea Monster, on 05 October 2016 - 10:45 PM, said:

(Puts on pedant hat) Wouldn't the recon vehicle spout blood anyway - from the pigcop pilot? Remember it's not a drone, it's a piloted vehicle.

I doubt that you damage the pilot, when the vehicle is destroyed, a healtly pig cop comes out.

 Trooper Dan, on 06 October 2016 - 09:40 AM, said:

A suggestion: you should add the smooth movement flag to some of the sprites (NEWBEAST and TANK come to mind) using the spriteflags command.

Thanks for the advice, I think i'll use it only for the tank. I also tried the flag 'hurt spawn blood' for the newbeast, but the blood appear in red, so i'll leave it as is.

 Trooper Dan, on 05 October 2016 - 10:25 PM, said:

Overall, this is a very nice set of fixes and would make a good base code when starting a new Duke 3D mod. In fact, we would like to do that with the Duke Spookem mod. We will give credit, of course.

Sure, go ahead ;)
2

User is offline   Darkus 

#14

Small update coming soon.

I managed to fix the Shrinker, it's now possible to hit big sprites by shooting at their heads.
It was not working because the projectile itself was not damaging at all, so when I tried this in EVENT_EGS:
  case SHRINKSPARK
    ifvare SHRINKER_WEAPON_STRENGTH 0
      strength 1
  break

Curiously, it works like intended, and does not damage at all.

Also implemented palette spawn for all enemies; it's now possible to spawn colored enemies using RESPAWN (only original hardcoded enemies did not have this feature).
Also when you destroy a tank or a recon vehicle, the pig cop that is coming out will herit the colour of their vehicle.

However, I need help on two things:

1) When a tank is bumping into a wall, there's an one frame glitch, because he tries to change direction (like other enemies does) my code is supposed prevent that. So I tried some things like EVENT_PREGAME or EVENT_ANIMATESPRITES with setspr[THISACTOR].tsprang 'angle', but it did nothing (besides, I have not forgotten to add 16 at the mdflags member).

2) Green blood for eggs (or how a small insignificant thing can become a headache); even I made green blood, using kick or direct hit with RPG make still bleed red. So I wanted to use spriteflag EGG 4194304 to remove 'automated bleeding' and code my own (like I did with NEWBEAST), but It does not work probably because the actor is hardcoded (again...)
0

User is offline   Jimmy 

  • Let's go Brandon!

#15

You just need to use EVENT_GAME (I think) and then jack into the blood sprite using CASE/SWITCH, and then you can use IFSPAWNEDBY to make the blood PAL 6 if it is spawned by the egg or Protector Drone. Sorry I can't provide exact code right now, I'm away from home but you should be able to figure it out. EVENT_GAME fuckery will be very useful for bug fixing, especially with hardcoded sprites.
0

User is offline   NNC 

#16

Great set. I thought some of these, like the color respawn issues had been fixed in Duke Plus, but it's nice to have a proper game.con for vanilla Duke.

My other recommendations (I'm not sure how many of these are hardcoded thing, and which can be fixed via game.con):

1. Give the Reconcar a proper "repeat" size at mapload instead of standard 40:40, which is unbelievably small compared to original Pig Cops. I would recommend 56:48. It was the one that had been used in demo, and it corresponds to the realistic the size better.

2. Miniboss E2 and E3 and even E4 should work normally by default, which means at least 1000 HP and proper weapons. They should not be just one-shot guys. Also the mini-queen shouldn't stomp you like in the official code. All of these miniboss guys should retain their original recognition sound instead of Duke talk.

3. Some of the other unused sounds, like the recognition sound for Newbeast should be implemented (was seen in DukePlus as well).

4. Tanks and Newbeasts that are sized bigger on maps only resize when they become active, so you can see them oversized before meeting them (ie. in cameras). That should be fixed too.

5. Enemies should be seen in their original angle at mapload. In the game, only Liztroop, Pigcop, Shark and RPV can be seen in their original angles. All others face you even when they shouldn't before becoming active.

6. Enforcer shouldn't enter water. That had been the case since EDuke32... the original duke3d.exe didn't allow this, and it was much better. Enforcers are agile, fast moving guys, water is somewhat a gamebreaker for them. Since this wasn't a game.con bug, I'm not sure how to fix this.

7. Another maybe-hardcoded bug,but ever since EDuke32, some ceiling aligned buttons cannot be shot (ie. the one in Mothership.map, which triggers a secrect place).

This post has been edited by Nancsi: 21 October 2016 - 06:38 AM

0

User is offline   Darkus 

#17

 Nancsi, on 20 October 2016 - 05:50 PM, said:

1. Give the Reconcar a proper "repeat" size at mapload instead of standard 40:40
2. Miniboss E2 and E3 and even E4 should work normally by default
3. Some of the other unused sounds, like the recognition sound for Newbeast
4. Tanks and Newbeasts that are sized bigger on maps only resize when they become active, so you can see them oversized before meeting them (ie. in cameras). That should be fixed too.
5. Enemies should be seen in their original angle at mapload.

Most of them are already fixed, check the first post.

 Nancsi, on 20 October 2016 - 05:50 PM, said:

6. Enforcer shouldn't enter water. That had been the case since EDuke32... the original duke3d.exe didn't allow this, and it was much better. Enforcers are agile, fast moving guys, water is somewhat a gamebreaker for them. Since this wasn't a game.con bug, I'm not sure how to fix this.

Strange, I tested and they don't even go on a water surface. Not the same version?

 Nancsi, on 20 October 2016 - 05:50 PM, said:

7. Another maybe-hardcoded bug,but ever since EDuke32, some ceiling aligned buttons cannot be shot (ie. the one in Mothership.map, which triggers a secrect place).

The ceiling button in E4L3 work fine, maybe the other buttons are not meant to be used like that, I'll check this later.

 Jimmy Gnosis, on 20 October 2016 - 05:13 PM, said:

You just need to use EVENT_GAME (I think) and then jack into the blood sprite using CASE/SWITCH, and then you can use IFSPAWNEDBY to make the blood PAL 6 if it is spawned by the egg or Protector Drone. Sorry I can't provide exact code right now, I'm away from home but you should be able to figure it out. EVENT_GAME fuckery will be very useful for bug fixing, especially with hardcoded sprites.

I already made green jibs for egg, but what I mean is the blood that appear when you shoot them (JIBS6 actor).
The JIBS6 actor don't appear from the monster, but from the projectile; my code is supposed to check what kind of actor has been hit by recovering the information from the projectile.

I put this in EVENT_EGS:
case JIBS6
  ifspawnedby SHRINKSPARK cstat 32768 // killit don't work here so...
  getactor[THISACTOR].owner TEMPFIX1
  getactor[TEMPFIX1].htflags TEMPFIX2
  ifvaror TEMPFIX2 8 // if spawned by a projectile...
  { getactor[TEMPFIX1].htg_t 8 TEMPFIX2
    ifvare sprite[TEMPFIX2].picnum EGG // green for egg
      setactor[THISACTOR].pal 8
    else ifvare sprite[TEMPFIX2].picnum RECON // no blood for recon vehicle
      cstat 32768
  }
break


This works with SHOTSPARK1 projectile, because it last some time before disapearing. The problem is that the other projectiles (KNEE, RPG...) are disapearing on impact, so I think the blood sprite did not have time to recover the information and don't change color.
That's why I tough to use the spriteflags command, to remove hardcoded bleeding and code my own like I did with NEWBEAST.
Since the NEWBEAST is not bleeding like other monsters, I added this in the SHOTSPARK1 actor code:
ifcount 2 nullop
else
ifcount 1
{ getactor[THISACTOR].htg_t 8 TEMPFIX1
  ifvarg TEMPFIX1 -1
  switch sprite[TEMPFIX1].picnum
    case NEWBEAST
    case NEWBEASTSTAYPUT
    case NEWBEASTJUMP
    case NEWBEASTHANG
    { espawn JIBS6
      setactor[RETURN].pal 6
      setactor[RETURN].xrepeat 24
      setactor[RETURN].yrepeat 24
    }
    break
  endswitch
}

I want do this for eggs too, but I need to know how to disable harcoded bleeding otherwise it will bleed twice (one red and one green).
0

User is offline   Hendricks266 

  • Weaponized Autism

  #18

 Darkus, on 21 October 2016 - 01:24 PM, said:

  ifspawnedby SHRINKSPARK cstat 32768 // killit don't work here so...

changespritestat THISACTOR 1
killit

 Darkus, on 21 October 2016 - 01:24 PM, said:

  ifvaror TEMPFIX2 8 // if spawned by a projectile...

That should be ifvarand.
0

User is offline   Darkus 

#19

 Hendricks266, on 21 October 2016 - 01:29 PM, said:

changespritestat THISACTOR 1
killit

It's not working in EVENT_EGS, but it works in EVENT_GAME. Even killit alone will be enough

 Hendricks266, on 21 October 2016 - 01:29 PM, said:

 Darkus, on 21 October 2016 - 01:24 PM, said:

ifvaror TEMPFIX2 8 // if spawned by a projectile...

That should be ifvarand.

I understood why I'm completely wrong here... I though the flag in question was for checking if the sprite is a projectile, but it's only for custom projectiles and not hardcoded ones. Argh. But that still did not solve my problem.
0

User is offline   NNC 

#20

OK, I downloaded the file and also downloaded the latest EDuke version, so it's better to give feedback this way:

My 2, 4, 5 and 6 lost their actuality. It's good to see the new EDuke version banned Enforcers and Pigcops from reaching water under normal circumstances... I'm not sure if the non-flying Liztroop is good to be banned from there, but here we go. I love to see them firing underwater, I guess it was part of this game.con hack.

As for the other points:

I still recommend you to fix the Reconcar size into 56:48 (or even 64:56). 40:40 is too small for them... Also for the Reconcar, there is a bug that they can't fly through other enemies, and look awkward when they are just hovering standstill and try to fly through.

The Newbeast recog. sound still haven't been added.

As for the ceiling button, some of them work. However the handbutton from The Abyss level doesn't work as ceiling aligned, that's why one of Mothership's puzzles doesn't work. But that's a minor thing, I never noticed the problem in other level....

Also, I don't think the drone updates work really well. Drones used to give alarm sound occasionally instead of bursting. That was better, since now there is no beep, just boom... Also, I'm not sure if that's a good thing to not allow drone detonation within closed doors. I'm pretty sure some levels like Incubator and Warp Factor are designed to allow safe detonation.

This post has been edited by Nancsi: 21 October 2016 - 05:39 PM

0

#21

Quote

- The shrinker not always work with big sprites (mini bosses for example), I tried many ways to fix that, without success...


Shrinker is a zero damage weapon with blast radius. If you add damage to the Shrinker (in USER.CON), it will shrink whatever it hits, regardless of where it hits. Add just a single point of damage; it's effective to prevent it from outright killing monsters and maintains its uselessness against episode bosses, but keeps the weapon's functionality.

EDIT: Ninja'd.

Quote

6. Enforcer shouldn't enter water. That had been the case since EDuke32... the original duke3d.exe didn't allow this, and it was much better. Enforcers are agile, fast moving guys, water is somewhat a gamebreaker for them. Since this wasn't a game.con bug, I'm not sure how to fix this.


The biggest problem with Enforcers underwater is that the water physics is different IIRC as though you were in a low gravity place (although there's water resistance in X plane) and when they jump underwater they go really high and it's hard to find them afterwards.

This post has been edited by Duke of Hazzard: 23 October 2016 - 05:15 AM

0

User is offline   Jimmy 

  • Let's go Brandon!

#22

Really, all of the enemies should have completely different behaviour underwater and the ability to drown for some of them. But maybe that goes beyond the scope of bugfiixing.
0

User is online   Danukem 

  • Duke Plus Developer

#23

 Jimmy Gnosis, on 23 October 2016 - 01:08 PM, said:

Really, all of the enemies should have completely different behaviour underwater and the ability to drown for some of them. But maybe that goes beyond the scope of bugfiixing.


You're right but yeah, that goes beyond bug fixing. For me, the utility of a pure bug fix edit is that it serves as a base for other projects without adding any extra baggage. That's why I've never made one myself -- I don't have the discipline to resist adding more features.
0

User is offline   Darkus 

#24

Update coming slowly but surely. Improved most of my code, how NEWBEAST act with palettes (also fixing the freezing bug), some minor cosmetic changes. Also fixed a stupid bug with strippers too.

 Nancsi, on 21 October 2016 - 05:21 PM, said:

I still recommend you to fix the Reconcar size into 56:48 (or even 64:56). 40:40 is too small for them... Also for the Reconcar, there is a bug that they can't fly through other enemies, and look awkward when they are just hovering standstill and try to fly through.

I made them appear with 48x48 when using RESPAWN, but I don't know for placing them directly in maps, I'll think on this.

 Nancsi, on 21 October 2016 - 05:21 PM, said:

The Newbeast recog. sound still haven't been added.

I always thought that they are sort of 'stealth' monsters, they are activating silently, so you don't know how many are after you. However, I made them use the recog sound when they are spawned by the queen.

 Nancsi, on 21 October 2016 - 05:21 PM, said:

Also, I don't think the drone updates work really well. Drones used to give alarm sound occasionally instead of bursting. That was better, since now there is no beep, just boom... Also, I'm not sure if that's a good thing to not allow drone detonation within closed doors. I'm pretty sure some levels like Incubator and Warp Factor are designed to allow safe detonation.
They were supposed to emit beeping sound before detonating, but they were badly coded, so I have recoded them but disabled beeping. You can edit the file if you want to see how they supposed to work with the original code.

 Jimmy Gnosis, on 23 October 2016 - 01:08 PM, said:

Really, all of the enemies should have completely different behaviour underwater and the ability to drown for some of them. But maybe that goes beyond the scope of bugfiixing.
That's why I made the trooper and newbeast more aggressive in water, it was just stupid how they advance toward you without attacking. I don't know if I should make the pigcop and lizman more aggressive too. I also though that the sharks could move up and down, but prefer I leave them as is.


I have some suggestions, I would like to know what you think about it::

- Remove shadows for some actors (turrets and slimers in particular, they are spotted too easily like that)

- When a mini-boss resurrect in Damn I'm Good skill, they have 100 health instead of 1000. I don't know if it's intentional, or if I should fix that.

- Remove multiplayer items in coop mode. This just makes the game too easy with them.
0

User is offline   Lunick 

#25

 Darkus, on 28 October 2016 - 03:03 PM, said:

Also fixed a stupid bug with strippers too.

Is this related to the Shrinker? ;)
0

User is offline   Darkus 

#26

Well, shrink her, approach without stomping her, and press use. Now you have an invincible liliputian stripper. Also work with the freezer and the expander in similar way.
0

User is offline   Fox 

  • Fraka kaka kaka kaka-kow!

#27

 Darkus, on 28 October 2016 - 03:03 PM, said:

- Remove shadows for some actors (turrets and slimers in particular, they are spotted too easily like that)

I actually think that's an interesting feature.

 Darkus, on 28 October 2016 - 03:03 PM, said:

- When a mini-boss resurrect in Damn I'm Good skill, they have 100 health instead of 1000. I don't know if it's intentional, or if I should fix that.

Mini bosses use PIGCOPSTRENGTH when respawning. While that could have been intentional so you don't have to waste too much ammo, I suppose it may have been a mistake when copying the code from another enemy, similar to how mini bosses also use AITROOPSEEKENEMY after the Shrinker effects passes. This was indeed fixed in the Nintendo 64.

 Darkus, on 28 October 2016 - 03:03 PM, said:

- Remove multiplayer items in coop mode. This just makes the game too easy with them.

That's a matter of balancing, not a bug. :\
0

User is offline   Darkus 

#28

Update! See first post for download.

What's new:

- Corrected some mistakes that were in the previous version.
- Minor cosmetics (items that are dropped have a random angle for HRP or voxels, some other actors corrections...)
- Fixed shrinker, it's now possible to shrink large sprites without problems.
- Possibility to spawn any colored monsters with using a paletted RESPAWN sprite.
- Reworked how NEWBEAST work with palettes. Has now green blood, the correct color is restored after being freezed, also fixes unintentionally this bug "https://forums.duke4.net/topic/8331-newbeast-and-menu-related-bugs/" , when unfreeze, the monsters has now correct behavior (still happen in EDuke with the original GAME.CON file)
- Removed floor shadows for slimers and ceiling turrets (floor turrets still have shadows).
- Removed multiplayer items in coop mode (May subject to change).
3

User is offline   Jimmy 

  • Let's go Brandon!

#29

 Darkus, on 28 October 2016 - 03:03 PM, said:

That's why I made the trooper and newbeast more aggressive in water, it was just stupid how they advance toward you without attacking. I don't know if I should make the pigcop and lizman more aggressive too. I also though that the sharks could move up and down, but prefer I leave them as is.

I like the idea of sharks moving around more realistically. As for the Pigcop, I've always liked in Zero Hour that they drown very quickly in water. This would be a big gameplay change in Duke3D though.
0

User is offline   F!re-Fly 

#30

Thank you for this beautiful work. I myself modified many things in this same file, compared to my project.
0

Share this topic:


  • 4 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic


All copyrights and trademarks not owned by Voidpoint, LLC are the sole property of their respective owners. Play Ion Fury! ;) © Voidpoint, LLC

Enter your sign in name and password


Sign in options