News:

One Minute Game Review by The Happy Friar: https://ugetube.com/@OneMinteGameReviews
Also on Rumble: https://rumble.com/c/c-1115371

idTech 4 (aka Doom 3 tech) Discord Server! https://discord.gg/9wtCGHa

Main Menu
Menu

Show posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Show posts Menu

Topics - Revility

#1
As I wrap up the 2018 update for the Ruiner/Rivensin mod, I'm starting to prep an update for the dhewm3 edition of the side scroller mod hardqore.

The mod lacks a few key features for a side scroller and that is where I'm looking for help finishing up.  If anyone could help out, that would allow me to concentrate on adding more levels, QOL, balances and content which the mod desperately needs.  I'm no coder so it would take way longer than it should to get this stuff implanted fumbling between code and script.

Looking for help adding the following to the mod:
-jump through or around platforms
-better feed back when the player is hit... old school knock back.
-Brief invulnerability after being hit.
-some AI tweaks
-possible controller support in order to remove the need for stuff like joy2key.
-any other features the programmer/scripter feels is worth adding.

It might not sound like much, but when it comes to a sidescroller the changes listed would make a big impact on the experience.  Some it could be done through just script, others might need hard coding.
If interested, just send me a pm here, on the mod db or reply below.  Or if you know how to do one of the listed above and care to show, you could post in this thread.

The gpl souce code is on github:
https://github.com/dhewm/dhewm3-sdk/tree/hardqore2

Hardqore mod db page:
https://www.moddb.com/mods/hardqore
#2
id Tech 4 Textures / Looking for Clean Materials paks
October 21, 2018, 11:37:07 AM
Snooping around if Eutectic's clean materials pak is still somewhere on the web or if someone still has a copy floating around
#3
So I've been tinkering with trying to have 2 ammo types for a weapon.  We already have multiple projectile types and are able to toggle that from Denton's mod.  What i'm hoping to do is have the secondary projectile type also use a different type of ammo.

I did try simply toggling the ammotype key in a weapon but that didn't work.  any ideas?
#4
Looking to see if there is anyone who can give me a hand fixing up the thirdperson cross hair for Ruiner.  There are 2 bugs in it.   I'm hoping to get a fix included for the upcoming, and long overdue, patch for the mod.

The first bug is from the trace line made to determine the cross hair's position.  When playing the mod, type g_debugweapon 1 in the console to show the line used to determine the position and also for the melee combat related additions.  When something gets in the way of the line, the cross hair won't update.  This is easily duplicated by standing next to a wall or door way and just shooting. I have a hunch the issue is mainly caused by the shoulder camera offsetting the camera.  Maybe being able to offset the origin of the line to the right would help?

The other bug deals with launching projectiles from the barrel.  When set to 1, the cross hair is always off.  to counter act it an offset can be set in the cursor.gui  It works alright, but will still be off when looking too high or low because of the weapons barrel position.  The only thing I can think of is maybe a flag in the projectiles fired to aim towards it... which could look wierd unless the crosshair position is offset right in the cursor.gui.

Any help would be really appreciated!

We uploaded the source code for the mods years ago on the mod db. 
https://www.moddb.com/mods/ruiner/downloads/ruiner-hardqore-2-source-codes

below is the playercursor.cpp which handles the position of the crosshairs.

#include "../idlib/precompiled.h"
#pragma hdrstop
#include "Game_local.h"
#include "PlayerCursor.h"

/*
===============
idPlayerCursor::idPlayerCursor
===============
*/
idPlayerCursor::idPlayerCursor() {
   cursorHandle   = -1;
   created = false;
}

/*
===============
idPlayerCursor::~idPlayerCursor
===============
*/
idPlayerCursor::~idPlayerCursor() {
   FreeCursor();
}

/*
===============
idPlayerCursor::FreeCursor
===============
Post: tells the game render world to free the cross hair entity, sets the cursor
handle to -1 and sets created to false
*/
void idPlayerCursor::FreeCursor( void ) {
   if ( cursorHandle != - 1 ) {
      gameRenderWorld->FreeEntityDef( cursorHandle );
      cursorHandle = -1;
      created = false;
   }
}

/*
===============
idPlayerCursor::Draw
===============
*/
void idPlayerCursor::Draw( const idVec3 &origin, const idMat3 &axis,const char *material) {

idPlayer *localPlayer = gameLocal.GetLocalPlayer();
trace_t         tr;
float          distance = 60;
float          length;
float          zoomMult; //ivan
//detemine the point at which the weapon is aiming
idAngles angle = axis.ToAngles();
idVec3 endPos = (origin + (angle.ToForward() * 120000.0f));
gameLocal.clip.TracePoint(tr,origin,endPos,MASK_SHOT_RENDERMODEL,localPlayer);
endPos = tr.endpos;

//find the distance from the camera to the point at which the weapon is aiming
idMat3 cameraAxis = localPlayer->GetRenderView()->viewaxis;
idVec3 cameraOrigin = localPlayer->GetRenderView()->vieworg;
idVec3 vectorLength = endPos - cameraOrigin;
length = vectorLength.Length();

zoomMult = 90.0f/localPlayer->CalcFov( true ); //ivan
//gameLocal.Printf( "zoom: %f\n",zoomMult ); //ivan

length = zoomMult*distance/length; //ivan - zoomMult forces constant cursor size

//linearly interpolate 5 feet between the camera position and the point at which the weapon is aiming
endPos.Lerp(cameraOrigin,endPos,length);

if ( !CreateCursor(localPlayer, endPos, cameraAxis,material )) {
  UpdateCursor(localPlayer,  endPos, cameraAxis);
}
}

/*
===============
idPlayerCursor::CreateCursor
===============
*/
bool idPlayerCursor::CreateCursor( idPlayer *player, const idVec3 &origin, const idMat3 &axis, const char *material ) {
   const char *mtr =  material;
   int out = cursorHandle;
   if ( out >= 0 ) {
      return false;
   }
   FreeCursor();
   memset( &renderEnt, 0, sizeof( renderEnt ) );
   renderEnt.origin   = origin;
   renderEnt.axis      = axis;
   renderEnt.shaderParms[ SHADERPARM_RED ]            = 1.0f;
   renderEnt.shaderParms[ SHADERPARM_GREEN ]         = 1.0f;
   renderEnt.shaderParms[ SHADERPARM_BLUE ]         = 1.0f;
   renderEnt.shaderParms[ SHADERPARM_ALPHA ]         = 1.0f;
   renderEnt.shaderParms[ SHADERPARM_SPRITE_WIDTH ]   = 7.0f;
   renderEnt.shaderParms[ SHADERPARM_SPRITE_HEIGHT ]   = 7.0f;
   renderEnt.hModel = renderModelManager->FindModel( "_sprite" );
   renderEnt.callback = NULL;
   renderEnt.numJoints = 0;
   renderEnt.joints = NULL;
   renderEnt.customSkin = 0;
   renderEnt.noShadow = true;
   renderEnt.noSelfShadow = true;
   renderEnt.customShader = declManager->FindMaterial( mtr );
   renderEnt.referenceShader = 0;
   renderEnt.bounds = renderEnt.hModel->Bounds( &renderEnt );
   cursorHandle = gameRenderWorld->AddEntityDef( &renderEnt );

   //AddRenderGui( temp, &renderEnt->gui[ 0 ], args ); //ivan
   //renderEnt.gui[ 0 ] = uiManager->FindGui( "guis/cursor.gui", false, false ); //ivan test
   //if(renderEnt.gui[ 0 ] == NULL) gameLocal.Printf( "renderEnt.gui[ 0 ] == NULL\n"); //ivan test
   return false;
}

/*
===============
idPlayerCursor::UpdateCursor
===============
*/
void idPlayerCursor::UpdateCursor(idPlayer* player,  const idVec3 &origin, const idMat3 &axis) {
   assert( cursorHandle >= 0 );
   renderEnt.origin = origin;
   renderEnt.axis   = axis;
   gameRenderWorld->UpdateEntityDef( cursorHandle, &renderEnt );
#5
Its been years since I've tinkered with idt4 and any major mod project in general and now I'm ready to jump back in the boat.

I am looking for to see if there is anyone interested in porting the source code from hq2 to one of the more modern d3 gpl sources out there.  Maybe Ruiner as well.  While I've always understood enough about the hard coding side to do small changes, when it comes to larger scale stuff is where things get foggy and figured it would be best to find someone for the task.  I have not heard from our original programmer in years so that brings me to here.

After snooping around it looks like dwehm or rbdoom would be the best routes to go.. if there is something better I'm all for it.  Mostly I'm looking for a straight forward port with a few extras thrown in the mix. 

If using an updated version of the original d3 gpl, like dhewm, the only addition would be to have controller support.  Hardqore 2 is a 2.5d sidescroller...  so finally having that in would be great.  We supported keyboard contra style controls and also keyboard and mouse.

Using an updated bfg source would be great and I believe it does have controller/joystick support in it.  My only concern would be the flash gui's.  I used to teach flash in the early 2000's in a night school and am quite familiar with it...  but I straight up don't like working with it anymore for various reasons.  If a version of the original gui system was added back in, rbdoom would great to use just for the extra bells and whistles added in.  The only built in editors I ever used in d3 were the AF and particle editor but it's my understanding DRad has a particle editor in it now.

I'm sure there might be other issues porting over and other small updates needed, looks like we forgot to add in old school player knockback & some enemies hurt by just touching them into hq2 as an example.  As for ruiner, a port would be nice to have just for players to have the option to use...  but I wouldn't want to start it back up without adding in some gameplay features and updating some of the art assets and revamping the maps as well...  so it would be a larger scale project than a Hardqore revival would be.

If anyone is interested, please let me know.  The updated code could also be put online as well for everyone to tinker with.  The source code was released a while back and is available at:
https://www.moddb.com/mods/hardqore-2/downloads/ruiner-hardqore-2-source-codes

If it helps any, I know the ruiner souce was build off the denton mod source code.  I did notice denton's mod support was added to dhewm.  HQ2 might be as well, I don't remember off the top of my head.