Jump to content
Search In
  • More options...
Find results that contain...
Find results in...


  • Content count

  • Joined

  • Last visited

About Gez

  • Rank
    Why don't I have a custom title by now?!

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. The way to make Hexen fun to play is to give yourself an infinite supply of discs of repulsion and then use them constantly. Pushing a centaur into a bottomless pit remains my all-time favorite thing in Hexen.
  2. What kind of game is Doom? At its core, it's one of real-time action from a first person perspective. So for the opposite I'd pick something like Civilization. Turn-based strategy from a god's eye view.
  3. Copy the text of the link, not its address.
  4. Gez

    License for Slade 3 and Doom Builder 2 and GZ doom

    Yeah you can use GZDoom for a commercial work, that's the point of the GPL. Just do not distribute the zd_extra.pk3 file commercially; it's what contains some non-free data needed to support the original games -- and you won't need that for your own game anyway so it's safe to remove.
  5. And yet that didn't stop one of the most successful movie franchises ever to start with Episode IV.
  6. Gez

    Levity In Doom Games

    When you shoot a charging lost soul, and while slowly drifting backward it bumps on some other monster and damages it. (Because yes, it's still technically in "charge mode" so it still causes damage on contact.) Bonus points if it kills said other monsters. The bigger and badder, the better.
  7. Alien Vendetta 2: Alien Omerta Hell Revealed III: Hell Reveals All Going Down 2: Going Downer
  8. Gez

    License for Slade 3 and Doom Builder 2 and GZ doom

    What do you mean by "make commercial works"? If it's creating assets (such as levels), then the license of the program doesn't really matter. The license matters for when you redistribute the program itself and/or its code, which may be relevant in this case for GZDoom but probably won't be for DB2 or SLADE3 (unless you want to bundle them with your game, why not.) Anyway they're all GPL, and that's something you can find out by looking at the source code.
  9. Gez

    Levity In Doom Games

    A chaingunner behind a barrel, blowing itself up.
  10. Gez

    Things about Doom you just found out

    Let's not even talk about all the formats that used .dat extension... SLADE can open Quake and Half-Life wads, but that's because it has an archive class for them.
  11. The original Doom from 1993 was also styled DOOM back then. Likewise for QUAKE and RAGE by the way. It's like their house style. lower case for the studio ("id software" not "Id Software") and ALL CAPS FOR THE GAME TITLES. Meh.
  12. Gez

    DOOM Eternal Gameplay Reveal Impressions

    I think the problem is that "cartoony" has started to mean "deliberately non-realistic" and that means that Evil Dead is now in the same genre as Looney Tunes.
  13. Gez

    Monsters on slopes

    IIRC in ZDoom the cut-off point is 45°. Less than that and monsters can navigate it without problem, more than that and they can't.
  14. Gez

    Things about Doom you just found out

    sfx_boscub == DSBOSCUB. Open doom2.wad with SLADE 3 and listen to it. Here's some vanilla Doom code: // travelling cube sound void A_SpawnSound (mobj_t* mo) { S_StartSound (mo,sfx_boscub); A_SpawnFly(mo); } Wow, it sounds like the action function A_SpawnSound plays that woowawoo sound! In vanilla Doom! Amazing!!!!! {SPR_BOSF,32768,3,{A_SpawnSound},S_SPAWN2,0,0}, // S_SPAWN1 {SPR_BOSF,32769,3,{A_SpawnFly},S_SPAWN3,0,0}, // S_SPAWN2 {SPR_BOSF,32770,3,{A_SpawnFly},S_SPAWN4,0,0}, // S_SPAWN3 {SPR_BOSF,32771,3,{A_SpawnFly},S_SPAWN1,0,0}, // S_SPAWN4 Woah, it looks like the state S_SPAWN1 calls the A_SpawnSound function! In vanilla Doom!!!!!!!!!!1!!! Unbelievable!!!!!! { // MT_SPAWNSHOT -1, // doomednum S_SPAWN1, // spawnstate 1000, // spawnhealth S_NULL, // seestate sfx_bospit, // seesound 8, // reactiontime sfx_None, // attacksound S_NULL, // painstate 0, // painchance sfx_None, // painsound S_NULL, // meleestate S_NULL, // missilestate S_NULL, // deathstate S_NULL, // xdeathstate sfx_firxpl, // deathsound 10*FRACUNIT, // speed 6*FRACUNIT, // radius 32*FRACUNIT, // height 100, // mass 3, // damage sfx_None, // activesound MF_NOBLOCKMAP|MF_MISSILE|MF_DROPOFF|MF_NOGRAVITY|MF_NOCLIP, // flags S_NULL // raisestate }, Wowee-wow, it seems that S_SPAWN1 is the spawn state of the spawn cube! In vanilla Doom!!?!!!!1!! Astounding!!!!oneoneone
  15. The revenant has special coding that makes it prefer to close in for a melee attack when near enough to the player (or whatever its target is), except for retaliation strike when hurt. You can experiment with it if you want: put a revenant in a cage so it's stuck in place, and then move toward it. You'll notice there's a range where it can't attack you and it becomes completely harmless. Go a bit further away, and it'll resume throwing missiles in your face, though. Go closer and you're in range for a punch. But in between these two limits, you're safe as you as you don't make it go into pain. // // P_CheckMissileRange // boolean P_CheckMissileRange (mobj_t* actor) { fixed_t dist; if (! P_CheckSight (actor, actor->target) ) return false; if ( actor->flags & MF_JUSTHIT ) { // the target just hit the enemy, // so fight back! actor->flags &= ~MF_JUSTHIT; return true; } if (actor->reactiontime) return false; // do not attack yet // OPTIMIZE: get this from a global checksight dist = P_AproxDistance ( actor->x-actor->target->x, actor->y-actor->target->y) - 64*FRACUNIT; if (!actor->info->meleestate) dist -= 128*FRACUNIT; // no melee attack, so fire more dist >>= 16; if (actor->type == MT_VILE) { if (dist > 14*64) return false; // too far away } if (actor->type == MT_UNDEAD) { if (dist < 196) return false; // close for fist attack dist >>= 1; } if (actor->type == MT_CYBORG || actor->type == MT_SPIDER || actor->type == MT_SKULL) { dist >>= 1; } if (dist > 200) dist = 200; if (actor->type == MT_CYBORG && dist > 160) dist = 160; if (P_Random () < dist) return false; return true; } Note the MT_UNDEAD line coding here. If the target is nearer than 196 map units, this function returns false, meaning that the missile state will not be entered because it'll think it's not in range. You can also see the MF_JUSTHIT flag check before that is what creates the retaliation shot mechanism. Also you can see the the arch-vile (MT_VILE), cyberdemon (MT_CYBORG), the spiderdemon (MT_SPIDER) and the lost soul (MT_SKULL) also have special hardcoded mechanisms. Oh, and monsters without a melee state, too. Note that this won't help a revenant that lost its melee state, though.