Prometheus Type mod

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

BlackCheetah

New Member
Jan 22, 2008
743
0
0
I been playing around with a replay code I made and I am thinking of making a mod like prometheus UT3 Mod for UT. What do you think?
 
Last edited:

medor

Member
Mar 15, 2009
446
7
18
And 2004 mode to "server" is finished?
Can you run it with:
2008_02_20_UT2k4_Characters_for_UT
2008_08_09_UT2k4Movement
UT2004PickupSounds4UT
Should we use UT2004ExtremeDemo0.3.exe

I would put it on my server, There is a tutorial?
 

BlackCheetah

New Member
Jan 22, 2008
743
0
0
Off with you, demonic fiend! :biggrin2:


Tenacious%20D%20rawk.gif
 

BlackCheetah

New Member
Jan 22, 2008
743
0
0
I had been playing around with a replay mod where everybody in game has their own recording that can play after game is finished or for a video replay like effect, and I was thinking of trying out something different with it. What ideas could I use with being able to play with your past self.

I had a idea of making a fighting game where you plan what ll do to you opponent before they strike or maybe a metal solid like game try to get to places undetected by initiating your recording at a certain time to see if it'll get across.
 

FXD|Shadow

Mad Man, really
I had been playing around with a replay mod where everybody in game has their own recording that can play after game is finished or for a video replay like effect, and I was thinking of trying out something different with it. What ideas could I use with being able to play with your past self.

I had a idea of making a fighting game where you plan what ll do to you opponent before they strike or maybe a metal solid like game try to get to places undetected by initiating your recording at a certain time to see if it'll get across.
Sorry to say this: but do you never have any OWN ideas, everything is see from you are conversion/ported mods, mods have to be original. If I wanna play Metal Gear Solid, I play Metal Gear Solid, wanna play Prometheus I play Prometheus. The only reason I see for "Conversion-Mods" are improving or surpassing it's original gameplay mechanics and visuals on a different (game) platform. Otherwise it's unoriginal and a waste of time.

The monster hunt maps make me cringe, high quality monsters look bad with such bad mapping, and need monster meshes.
There are actually GOOD designed / good looking MH maps, even if they're rare, we all should be happy that there still IS a MH-Community as part of the last few active UT Communities (next to Strangelove, UT99.org etc.)
 
Last edited:

BlackCheetah

New Member
Jan 22, 2008
743
0
0
Yes, I like to convert because:

1. if I have a good idea for a mod, I would more likely want to make a game
2. It's a challenge to use already used idea from another game and implement it another
3. It's just me that does it so I rather not make a whole briefing session on a huge magnificent mod all by myself.
4. Where is originality these days?

I did not say "Prometheus mod conversion," but I explained ideas in my last of what I feel I want to use with the record and replay system they use, which I explained I wanted to use with other ideas, such as fighting game, is there a replay and record fighting game? A strategy metal gear like, strategy game, and more...

If you are saying that I am not trying to be original now, then I could tell you the same thing with the things you do. Please don't pester me conversion blah blah blah, because I clearly state its not a conversion, and the end result will be nothing like a conversion. I was just inspired with "new" ideas from a used idea.
 

Feralidragon

UT n00b coder
Feb 25, 2008
182
0
16
Yes, I like to convert because:

1. if I have a good idea for a mod, I would more likely want to make a game
2. It's a challenge to use already used idea from another game and implement it another
3. It's just me that does it so I rather not make a whole briefing session on a huge magnificent mod all by myself.
Problem is, you never did a proper conversion. :)
Stability, performance, replication, AI, every single one of these coding elements seem to be a bit strange to you, or you never take them into consideration.

4. Where is originality these days?
UT Survival? Rocket-X? SDK? Single player mappacks? Universal Unreal? Siege? Food-Fight? Want more?

I did not say "Prometheus mod conversion," but I explained ideas in my last of what I feel I want to use with the record and replay system they use, which I explained I wanted to use with other ideas, such as fighting game, is there a replay and record fighting game? A strategy metal gear like, strategy game, and more...
As long you don't make it illegal like you did with UT2004 Extreme...

If you are saying that I am not trying to be original now, then I could tell you the same thing with the things you do.
Name those things... He's doing a damn SDK! Software Development Kit, every single SDKs around the world have many similar things, the only difference is the engine itself.

Please don't pester me conversion blah blah blah, because I clearly state its not a conversion, and the end result will be nothing like a conversion. I was just inspired with "new" ideas from a used idea.
We all hope so, because until now I personally only saw poor conversions. Sorry, but it's the truth.

So if you came with "new" techniques as you brag so much, show us something that works in stability and performance please, minimally of course, and with proper coding rules, and you might get yourself another image, which is not good generally, believe me. ;)
 

BlackCheetah

New Member
Jan 22, 2008
743
0
0
The last thing I done in UT was almost or maybe a year ago. While not modding for a while I had gone deeper in unrealscript and programming. All the things I have done, I have done with no skill in programming or have been taught to do so. I will confess looking back on myself now, I did suck :p but I had fun trying to do things, without proper learning.

I do make clean code now, I can easily create something in coding now faster than ever with very good performance. I never learned about performance before and about clean coding and I was lazy in learning more code, but at this moment all that I do now is cleaner and has better performance.

Heres some code of the replay stuff I am doing, it is a mess right now because I had stopped doing it at one stage to learn more ways of making it perform better.


Code:
class ReplayBot extends Pawn;

var string playername;

var bool bNoRecording;

var Replay CurrentNode;

function Postbeginplay()
{
	settimer(0.05,true);
}

auto state Vicky
{


       function Timer()
      {
             local replay r;
             local int i;
             local weapon wep;

                   //Set me to this points of recording.

		if( CurrentNode != none && CurrentNode.NextReplay != none )
         	{
				R = CurrentNode.NextReplay;

				R.PreviousNode = CurrentNode;

	 			CurrentNode = R;
				
		}
		else if( CurrentNode != none )
				R = CurrentNode;

                 if(r != none && r.replayname == playername && bNoRecording)
                     {

                     		 Setlocation( R.replayposition);//set location here

                        	SetRotation(r.replayrotation);// setrotation same as this recordings rotation
	
                        	Velocity = R.velocity; //velocity same as this recording
		
				ViewRotation = R.viewrotation;

                        	Mesh = R.mesh;

                        	//for(i=0; i<5; i++)
                        	//Multiskins[i] = r.multiskins[i];

                       		 if(weapon.class!=r.replayweapon)
                           	{

                              		wep = spawn(r.replayweapon,,,r.location);
                               		wep.giveto(self);
                               		weapon=wep;
 	                        }                         

              
                        	//If they are looped anim points
                        	if( r.bAnimLooped )
                                	LoopAnim(r.replayanim,(r.replayanimrate/2));
                    		else if(r.replayanim != animsequence)  
                                	PlayAnim(r.replayanim,(r.replayanimrate/2));
                        
                              
                        	//if it is point of where player fired
                        	if(r.firing == true)
                           	{
                          
                           		bfire=1;
		           		FireWeapon();
 
                           	}
                        	else if(r.altfiring == true)
                           	{
                           		baltfire=1;
                           		FireWeapon();
                           
                           	}
                        	else 
                          	 {
                            		bfire=0;

                            		baltfire=0;

                          	 }
                          lodbias = r.lodbias;

                          skin = r.skin;

                          drawscale = r.drawscale;
                          
                      } 
           

                        

          
       }


}

function FireWeapon()
{



	if( Weapon!=None )
	{


		//ViewRotation = Rotation;
		PlayFiring();
		if ( baltfire > 0 )
		{
			bFire = 0;
			bAltFire = 1;
			Weapon.AltFire(1.0);
		}
		else
		{
			bFire = 1;
			bAltFire = 0;
			Weapon.Fire(1.0);
		}
	}
	
}
function felloutofworld();

defaultproperties
{
	lifespan=0
	Drawtype=DT_Mesh
	DrawScale=1.0
	Mesh=lodmesh'Soldier'
	bBounce=true
	Physics=PHYS_Flying
        bDirectional=True
        bGameRelevant=True
        SoundVolume=0
        CollisionRadius=0.00
        CollisionHeight=0.00
	bcollideworld=false
	bblockactors=false
	bblockplayers=false
}
Code:
class MutReplay extends Mutator;


function modifyplayer(pawn other)
{


   local mutatorreplaycontroller r;


if(other.bhiddened == false)
  {

      r = spawn(class'mutatorreplaycontroller');
      r.setowner(other);
      other.bhiddened = true;
  }



}


function Mutate(string MutateString, PlayerPawn Sender)
{
	
           if(mutatestring == "replay")
              DoReplay();

             if ( NextMutator != None )
		NextMutator.Mutate(MutateString, Sender);



}

function DoReplay()
{

    local mutatorreplaycontroller rc;

    foreach allactors(class'mutatorreplaycontroller', rc)
      if(rc!=none)
         {
 

             rc.doreplay();

          }


}
function DoDelete()
{

    local mutatorreplaycontroller rc;

    foreach allactors(class'mutatorreplaycontroller', rc)
      if(rc!=none && rc.replaypawn != none)
         {

             rc.replaypawn.destroy();

          }


}

defaultproperties
{
}



Code:
//////////////////////////////
///Mutator Version Replay Inv makes the replay pathnodes for replaybot.
///
//////////////////////////////

class MutatorReplayController extends Actor;


var int ReplayINT; // To tell replaynode what position it is.
var Replay StartingNode, EndNode, CurrentNode;

var ReplayBot ReplayPawn;

Function Postbeginplay()
{


Settimer(0.05,true);



}
auto state Recording
{


         function timer()
         {
              

         		Record();


         }



         function Record()
         {
        	 local replay r;
         	local int i;
   
       		  //spawn replaynodes and record owner's location, rotation, velocity and animation.

       		  r = spawn(class'replay',,,owner.location);


		if( StartingNode == none)
		StartingNode = R;

         	r.replayposition=owner.location;


         	r.replayrotation=owner.rotation;

		if( CurrentNode != none && R != CurrentNode)
		{
			R.previousNode = currentNode;
			CurrentNode.Nextreplay = R;
		}
		
		CurrentNode = R;


         	r.replayanim=owner.animsequence;


         	r.replayvelocity=owner.velocity;


         	r.replayplace=replayint;


         	r.replayanimrate=owner.animrate;


         	r.bAnimLooped = owner.banimloop;

         	for(i=0; i<5; i++)
         	r.multiskins[i] = owner.multiskins[i];


         	r.replayweapon = pawn(owner).weapon.class;

		r.viewrotation = pawn(owner).viewrotation;
        
         	r.firing = pawn(owner).bfire>0;


         	r.replayname = pawn(owner).playerreplicationinfo.playername;



         	r.altfiring = pawn(owner).baltfire>0;



         	r.mesh = owner.mesh;

      
         	r.drawscale = owner.drawscale;

	 	EndNode = R;

         	if(replayint == 0)
            	replaypawn(owner).startreplay=r;

         	replayint++; //update for next  replay node spawned.
       







         }


}
function DoReplay()
{

 

             replaypawn = spawn(class'replaybot',,, startingnode.location, startingnode.rotation );
             replaypawn.playername = startingnode.Replayname;
	     replaypawn.currentnode = startingnode;
	     replaypawn.bNoRecording = true;
	     replaypawn.skin=owner.skin;
    	     replaypawn.multiskins[0]=owner.multiskins[0];
             replaypawn.multiskins[1]=owner.multiskins[1];
             replaypawn.multiskins[2]=owner.multiskins[2];
             replaypawn.multiskins[3]=owner.multiskins[3];
             replaypawn.multiskins[4]=owner.multiskins[4]; 
         


}
defaultproperties
{
}

Code:
//replay pathnode

class Replay extends actor;

var() vector ReplayPosition;
var() vector ReplayVelocity;
var() name ReplayAnim;
var() rotator ReplayRotation;
var() int ReplayPlace;
var() float ReplayAnimRate;
var() bool bAnimLooped;
var() class<weapon> ReplayWeapon;
var() bool Firing,Altfiring;
var() string Replayname;
var() rotator Viewrotation;
var() Replay NextReplay,  PreviousNode;

defaultproperties
{
	bStatic=false
	bNoDelete=false
	texture=none
	bhidden=true
	drawscale=0.3
}


Could anyone tell me a better way to implement record and record, I use a recorder to places nodes every 0.05 milliseconds that records whatever I have done at that moment, and when the replay is played the bot will execute timer at 0.05 milliseconds and will have its location, rotation, viewrotation, and correct weapon at the correct time the replay node was created. so...



Record:................................................<-- Replay nodes with information saved into them.

Replay: :wavey:-->............................<- Bot executes code to start at first node, and then go to that node's next node when it next executes.

The performance issue is if it is long term recording, like maybe a racing game then there will be thousands of replaynodes in the map, but I can't find a better way of making a faster code, except I have to make a c++ dll?
 
Last edited: