Page 57 of 179 FirstFirst ... 74753545556575859606167107157 ... LastLast
Results 1,121 to 1,140 of 3564

Thread: (SSGX Origins) Let's make a Wipeout game! This time for real!

  1. #1121
    Join Date
    Jul 2010
    Location
    Somewhere in the center... Poland?
    PSN ID
    zero3growlithe
    Posts
    779

    Default

    I'm just killing time Making everything to have fun

  2. #1122
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Well, if you want the latest track just to update the game just tell me. If now I'll send it when it's done...

  3. #1123
    Join Date
    Jul 2010
    Location
    Somewhere in the center... Poland?
    PSN ID
    zero3growlithe
    Posts
    779

    Default

    Finish it and then you can upload it fully made so everything will be clear
    btw. What does my ship looks like a bug? (every ship I've made so far in maya looked like a bug or worse xd)
    https://picasaweb.google.com/lh/phot...eat=directlink (it's about 1000 polis model)
    https://picasaweb.google.com/lh/phot...eat=directlink
    https://picasaweb.google.com/lh/phot...eat=directlink
    (even texture I've made suggests that it's bug [I can't help it that I like green color [pokerface] <- I want one now...])
    Ship made in proportion two to one.
    Last edited by zero3growlithe; 18th January 2012 at 07:48 PM.

  4. #1124

    Default

    The ship does look like an insect, but its too low poly to get a good idea of its shape at the minute.

    At certain angles (in the last picture) the silhouette is confused so I suggest you up the detail a bit more.

    The texture pattern (which is nice) is fighting with the underlying model making it look messy. Is smoothing on too? If its not, switch it on and post some screens again.

    OK crit over....sorry if it sounded negative! The above view (first picture) is a different story, the shape is well defined so you don't need much work there.

    I've kind of hit a brick wall with the handling and guidance of my AI....

    What I'm planning on now is a more pro-active system:

    Applies an opposite force to combat side-slip.

    Have nodes that have speed values, so on detection / touch the ship adjusts its own speed to match (say for example on sharp bends).

    Have some form of primitive braking mechanism.

    Its annoying to start again but its all a learning experience

  5. #1125
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Looks nice but what's that of the 2 to 1 porportion? Are you saying your ship is two times larger than it would be in real life?

  6. #1126
    Join Date
    Jul 2010
    Location
    Somewhere in the center... Poland?
    PSN ID
    zero3growlithe
    Posts
    779

    Default

    @Xpand: I mean that "lenght" of ship is 2*"width" of ship xD
    @Aspect:
    At certain angles (in the last picture) the silhouette is confused so I suggest you up the detail a bit more.
    Don't know what you mean but I'll see what I can do... although I don't know what (too stupid __)
    Is smoothing on too? If its not, switch it on and post some screens again.
    Eeeeeeh... with it on it looks like a real insect Even monster!
    https://picasaweb.google.com/lh/phot...eat=directlink
    https://picasaweb.google.com/lh/phot...eat=directlink
    https://picasaweb.google.com/lh/phot...eat=directlink
    (oh, and don't look at poli count there as i'm in preview mode...)
    btw. I've just noticed that this not smooth one looks like transformers from "up" view xD
    Last edited by zero3growlithe; 18th January 2012 at 08:54 PM.

  7. #1127
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Oh man, be careful with the mesh smooth/subdivision. That's a really good tool for animation movies, for games, however, it is the worst thing you can use because you won't have control over the amount the polys of your model... I got told this by a professional 3D modeler that made models for Need For Speed Underground. It's a royal pain in the a$$ when you realise that you've added too many polys and now the games runs at 3 FPS.
    Didn't the document about game optimization talk about that?

    Remember, just an advice...

  8. #1128

    Default

    OK, more crits:

    I would suggest using smoothing groups (I don't know the equivalent Maya term is). With low poly stuff this will help add definition.

    Create creases in areas to define sharp edges (like wings). This is kind of a halfway house between no smoothing and all smoothing.

    Check this out (just as a quick example for Blender) to see what I mean.

    http://blenderartists.org/forum/show...roups-mini-tut.

  9. #1129
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Blender does that in a strange manner. And after months of trying I still can't get that result without having to separate the parts.
    In 3DS Max you just add the smooth modifier and click auto-smooth and presto! it's done...

  10. #1130

    Default

    Xpand: yes it is a bit strange in Blender (coming from a Max background). The thing to remember is the Blender Game Engine plays nice with stuff made in Blender (including separating meshes) that would screw up in other 3D engines.

    This is to say Blender won't get this feature in the future.

    Another good tutorial (for Blender):

    http://www.katsbits.com/tutorials/bl...-smoothing.php

  11. #1131
    Join Date
    Jan 2012
    Location
    The Netherlands
    Timezone
    GMT + 1
    Posts
    24

    Default

    Hey guys this looks great what you all have here so far!
    I could give you a hand in modeling and texturing if you guys want, heres one of my latest models: http://m.cmcdn.net/13619617/780x438.jpeg
    I have very little experience with Unity though but i do have experience with UDK

  12. #1132

    Default

    yes!!!

    Finally got something working!!!! I have finally managed to get the racers to use physics (rather than basic motion) reliably!

    I made a small script that takes the linear velocity of each axis, and if an axis goes over a threshold (e.g. the z /up axis goes above 1) an opposite force is applied, meaning no ship flies into nowhere when they overshoot.... think Homeworld (PC game) for motion and you are not far removed from what I have at the minute. I am currently testing a 'worst case' track and see if I can force any problems.

    And since these values can be altered, it means it can form a stat for ship handling (higher == tighter manoeuvring, lower == sloppy).

    So far, I can also alter how close to a node the AI has to be before it looks for the next node- the start of difficulty settings?

    The other great thing is so far these scripts are running needing very few resources. With six racers the drain is about 1%- this will probably go to about 2% with eight to ten racers.

    And hello/welcome to Dayviewer- I'm sure Xpand/Zero will have some modelling to do at some point.....as for me, I'm still piloting cubes around!
    Attached Images Attached Images

  13. #1133
    Join Date
    Jul 2010
    Location
    Somewhere in the center... Poland?
    PSN ID
    zero3growlithe
    Posts
    779

    Default

    I need to modify my script too becouse:
    1. It's really messy
    2. It takes a lot of cycles to go through so it works slow if used many times (too many raycasts is there too... and I thought that colliders are more expensive)
    Anyway, I hope to see your version of game someday becouse it's beggining to sound more and more interesting
    EDIT: Can they already run on track which has changing height?
    @Dayviewer: Woooooo, damn it that I didn't know that Unreal Engine is now free to use earlier But there is other side of the medal... 3 versions of one game, lol, which one will be better: Blender, Unity or Unreal Engine one? (of course if you want to try to make one)
    Last edited by zero3growlithe; 19th January 2012 at 05:51 PM.

  14. #1134
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Quote Originally Posted by Dayviewer View Post
    Hey guys this looks great what you all have here so far!
    I could give you a hand in modeling and texturing if you guys want, heres one of my latest models: http://m.cmcdn.net/13619617/780x438.jpeg
    I have very little experience with Unity though but i do have experience with UDK
    Wow, that's cool! You have any idea of how to make something that looks like an AG ship? Or even tracks?

  15. #1135
    Join Date
    Jan 2012
    Location
    The Netherlands
    Timezone
    GMT + 1
    Posts
    24

    Default

    Quote Originally Posted by zero3growlithe View Post
    @Dayviewer: Woooooo, damn it that I didn't know that Unreal Engine is now free to use earlier But there is other side of the medal... 3 versions of one game, lol, which one will be better: Blender, Unity or Unreal Engine one? (of course if you want to try to make one)
    It's been for some time anyway Unreal is absolutely great, you can set up a great scene in no time, i worked on this one with 3 other guys recently:
    http://img26.imageshack.us/img26/7950/eindresultaat.jpg
    Post office i made for it:
    http://img337.imageshack.us/img337/7922/postofficew.jpg
    I don't know anything about programming stuff in there though, Unity is great as well very open and easy to use, though definatly harder to get a better rendered result.

    Quote Originally Posted by Xpand View Post
    Wow, that's cool! You have any idea of how to make something that looks like an AG ship? Or even tracks?
    Thanks! yea i could definatly try a ship or some track work like buildings/billboards and stuff like that ^^
    I work in 3ds max and can supply you guys with all kinds of exports and texture maps ofcourse, if you decide to try out UDK i can help out getting all the meshes in there and setting up the scene rendered nicely

  16. #1136
    Join Date
    Apr 2010
    Posts
    1,529

    Default

    Hey, does Unreal use C/C++? Cause I'm way better at those than C# or Java...

  17. #1137

    Default

    My next task is to make a braking system (easy enough in part since its the same system as what I have now, just on the y (forward) axis)- the big question is how I trigger it. I did have a brainwave for making waypoint nodes hold 'speed limit' data, but it may be a case of experimentation

    As far as Blender goes (I assume Unity too), rays / radar functions are CPU costly- have you thought about using a system similar to mine which uses references to the objects linear velocity? My AI uses no rays (yet) and it seems CPU friendly so far (but then......I have no eye candy yet!). Here is my blender script:

    Code:
    import GameLogic
    
    cont = GameLogic.getCurrentController()
    
    own = cont.owner
    
    Xspeed, Yspeed, Zspeed = own.getLinearVelocity(True)
    
    Anti_L_slip = [ -200.0, 0.0, 0.0]
    
    Anti_R_slip = [ 200.0, 0.0, 0.0]
    
    Anti_UP_slip = [ 0.0, 0.0, -120.0]
    
    Anti_DOWN_slip = [ 0.0, 0.0, 120.0]
    
    local = True
    
    if Xspeed > 1:
    
        own.applyForce(Anti_L_slip, local)
        
    if Xspeed < -1:
    
        own.applyForce(Anti_R_slip, local)
        
    if Zspeed > 1:
    
        own.applyForce(Anti_UP_slip, local)
        
    if Zspeed < -1:
    
        own.applyForce(Anti_DOWN_slip, local)
    Its really basic but it works, and it may be of some help to you. The only other option would be to lower the time the script is run per second (in Blender this is called frequency). The only problem with this is that some things need to be done constantly (like steering!) whilst others (like race positions) can be done ten times a second/game tick rather than 60.

    And I too hope my game gets finished! As a hobby Blender (and making games) is fun but its nice to see something work at the end of it all!

  18. #1138
    Join Date
    Jan 2012
    Location
    The Netherlands
    Timezone
    GMT + 1
    Posts
    24

    Default

    Quote Originally Posted by Xpand View Post
    Hey, does Unreal use C/C++? Cause I'm way better at those than C# or Java...
    http://udk.com/features-scripting.html
    C++, Java, Unrealscript, and Kismet but thats more of a visual way like Game Maker

  19. #1139
    Join Date
    Jul 2010
    Location
    Somewhere in the center... Poland?
    PSN ID
    zero3growlithe
    Posts
    779

    Default

    Wow... so simple and effective :O My A.I script looks something like this: (maybe I'll put it as txt file?)
    (It steers ship up, down, left, right and what not other direction you imagine but it's heavy...yeeeeeees, very heavy Although I don't know how to check that)
    EDIT: Yeeeaaaah... now i know how to check perfomance.... here...I love how it says "pro only"
    Code:
    var RaceBeginnerEnemy : boolean = false;
    var SlowDown : boolean = true;
    
    // Ship stability
    	var STRearRayOffset = Vector3(0,1,8);
    	var STBackRayOffset = Vector3(0,1,-5);
    	var STRearRayDir = Vector3(0,-1,-0.3).normalized;
    	var STBackRayDir = Vector3(0,-1,-0.3).normalized;
    	private var STRayLenght : float = 2.4;
    	private var StabilitySpeed : float = 140;
    	var layerMaskST : LayerMask;
    // Ship gravity manipulator
    	private var AGforce : float = 40000000;
    	private var AGforceRay : float = 1.5;
    	private var HitDistMultiplier : float = 50;
    	private var PushUpForce : float = 300;
    	private var Gravity : float = 1000000;
    	private var GravityRayLenght : float = 1.6;
    	var AGlayerMask : LayerMask;
    	private var GravityRayOffset = Vector3(0,0,4);
    // Ship Energy
    	var ShipEnergyVar : float = 100.0;
    	var Destroyer : GameObject;
    	private var SERayLenght : float = 0.4;
    		// Particle Emitters
    		var LeftSparks : ParticleEmitter; var RightSparks : ParticleEmitter; 
    		var FrontSparks : ParticleEmitter;var LeftSparksE : ParticleEmitter; 
    		var RightSparksE : ParticleEmitter;
    		// PE offsets
    		var LeftRay = Vector3(-3.8,-1,-2.6); 
    		var RightRay = Vector3(3.8,-1,-2.6); 
    		var FrontRay = Vector3(0,-1.5,9.5);
    		// PE directions
    		var LeftRayDir = Vector3(-0.3,-0.1,-1).normalized; 
    		var RightRayDir = Vector3(0.3,-0.1,-1).normalized; 
    		var FrontRayDir = Vector3(0,1,0.2).normalized;
    		// Layer mask
    		var SElayerMask : LayerMask;
    // Turning and Moving
    private var speed : float = 2400000;
    private var horizAX : float = 0;
    var horizSpeed : float = 2;
    var horizAngle : float = 15;
    private var turnSpeed : float = 160;
    private var hBank : float = 0;
    var dir1 = Vector3(-1,0,0).normalized;
    var dir2 = Vector3(1,0,0).normalized;
    var Hit : RaycastHit;
    var layerMask2 : LayerMask;
    
    private var Node : float = 1;
    private var LastNode : float = 0;
    private var FullLap : float = 21;
    private var Lap : float = 0;
    var CheckActualPlace : float = 0;
    
    function OnCollisionEnter(CollisionDetct : Collision){
    	if (CollisionDetct.gameObject.name == "CannonBullet"){
    		ShipEnergyVar -= 2;
    	}
    }
    function OnTriggerEnter (NodeTrigger : Collider){
    	var NodeString : String = Node.ToString();
    	if (NodeTrigger.gameObject.name == "StartGate"){
    		SlowDown = true;
    	}
    	if (NodeTrigger.gameObject.tag == "FinishLine" && FullLap > 18){
    		Lap ++; Node = 1; LastNode = 0; FullLap = 0;
    	}
    	if (NodeTrigger.gameObject.name == NodeString){
    		Node ++; LastNode ++; FullLap ++;
    	}
    }
    function OnTriggerExit (CheckGate : Collider){
    	if (CheckGate.gameObject.name == "StartGate"){
    		SlowDown = false;
    	}
    }
    function Update(){
    	if (RaceBeginnerEnemy == true && SlowDown == false){
    		ShipTurning();}
    	
    	if (LastNode > 23){LastNode = 0;}
    	if (Node > 23){Node = 1;}
    	
    	NavigateShip();
    	ShipEnergy();
    }
    function FixedUpdate(){
    	ShipAntiGravity();
    	SideForce();
    	ShipStability();
    }
    
    function NavigateShip(){
    	if (GameObject.Find("GameController").GetComponent("RaceSequencer").StartTimerEnd == true){
    		RaceBeginnerEnemy = true;
    	}
    	var NodeString : String = Node.ToString();
    	var LastNodeString : String = LastNode.ToString();
    	
    	Target = gameObject.Find(NodeString).transform;
    	LastTarget = gameObject.Find(LastNodeString).transform;
    	
    	var LastNodeDistance : float = ((Vector3.Distance(LastTarget.position, transform.position))/ 100);
    	var DistanceFromFinish : float = ((Lap * 100) + LastNode + LastNodeDistance);
    	CheckActualPlace = DistanceFromFinish;
    	
    	var SideCheck = transform.InverseTransformPoint(Target.position);
    	if (SideCheck.x < -10.0){horizAX = -1;} 
    	else if (SideCheck.x > 10.0){horizAX = 1;}
    	else {horizAX = 0;}
    }
    function ShipTurning (){
    	transform.Rotate(0, horizAX * turnSpeed * Time.deltaTime, 0, Space.World); // Rotate ship left/right
    		hBank = Mathf.Lerp(hBank, horizAX, Time.deltaTime * horizSpeed); // Restricted Z-Axis variable for read-only
    	var CurrentAngle = transform.localEulerAngles; // Variable for Z-Axis Angle in degrees
    		CurrentAngle.z = -hBank * horizAngle; // Change that variable
    	transform.localEulerAngles = CurrentAngle; // Set ships rotation according to this variable
    }
    function ShipStability (){
    	if ((Physics.Raycast (transform.TransformPoint (STRearRayOffset), transform.TransformDirection (STRearRayDir), Hit, STRayLenght, layerMaskST)) && Hit.distance > 0.1){
    		transform.Rotate (Vector3 (-StabilitySpeed / Hit.distance,0,0) * Time.deltaTime);
    	}
    	if ((Physics.Raycast (transform.TransformPoint (STBackRayOffset), transform.TransformDirection (STBackRayDir), Hit, STRayLenght, layerMaskST)) && Hit.distance > 0.1){
    		transform.Rotate (Vector3 (StabilitySpeed / Hit.distance,0,0) * Time.deltaTime);
    	}
    }
    function SideForce(){
    	if (RaceBeginnerEnemy == true && SlowDown == false){
    		rigidbody.AddForce(transform.forward * 1 * (speed * 3) * Time.deltaTime);	
    		// Keep ship in the middle of the track
    		if (Physics.Raycast (transform.position, transform.TransformDirection (dir1), Hit, 2, layerMask2)){
    			rigidbody.AddRelativeForce (1 * (700000 * 3) * Hit.distance * Time.deltaTime,0,0);
    			rigidbody.AddForce (0,0, 400000 * 3 * Hit.distance * Time.deltaTime);
    			//transform.Rotate (0,40 * Time.deltaTime * Hit.distance,0);
    		}
    		if (Physics.Raycast (transform.position, transform.TransformDirection (dir2), Hit, 2.5, layerMask2)){
    			rigidbody.AddRelativeForce (-1 * (700000 * 3) * Hit.distance * Time.deltaTime,0,0);
    			rigidbody.AddForce (0,0, 400000 * 3 * Hit.distance * Time.deltaTime);
    			//transform.Rotate (0,-40 * Time.deltaTime * Hit.distance,0);
    		}
    	}
    }
    function ShipAntiGravity(){
    	Speed = transform.rigidbody.velocity.y * 3.6;
    		if(Physics.Raycast(transform.position, transform.TransformDirection (Vector3.down), Hit, AGforceRay, AGlayerMask)){
    				rigidbody.AddForce (Vector3(0,(AGforce * 3) / (Hit.distance  * HitDistMultiplier),0) * Time.deltaTime);
    			}
    		if((Physics.Raycast(transform.position, transform.TransformDirection (Vector3.down), Hit, 0.4, AGlayerMask)) && -Speed > 25){
    				rigidbody.AddForce (Vector3(0,PushUpForce,0), ForceMode.Impulse);
    			}
    		if(!Physics.Raycast(transform.TransformPoint (GravityRayOffset), transform.TransformDirection (Vector3.down), Hit, GravityRayLenght, AGlayerMask)){
    				rigidbody.AddForce (Vector3(0,-Gravity,0) * Time.deltaTime);
    			}
    }
    function ShipEnergy(){
    	// Collision detection for wings and bumper
    		if (Physics.Raycast (transform.TransformPoint (LeftRay), transform.TransformDirection (LeftRayDir), Hit, SERayLenght, SElayerMask)){
    			LeftSparks.emit = true;
    			LeftSparksE.emit = true;
    		}	else{LeftSparks.emit = false; LeftSparksE.emit = false;}
    		if (Physics.Raycast (transform.TransformPoint (RightRay), transform.TransformDirection (RightRayDir), Hit, SERayLenght, SElayerMask)){
    			RightSparks.emit = true;
    			RightSparksE.emit = true;
    		}	else{RightSparks.emit = false; RightSparksE.emit = false;}
    		if (Physics.Raycast (transform.TransformPoint (FrontRay), transform.TransformDirection (FrontRayDir), Hit, SERayLenght, SElayerMask)){
    			FrontSparks.emit = true;
    		}	else{FrontSparks.emit = false;}
    	// Ship destroyer
    		if (ShipEnergyVar <= 0){
    			Instantiate (Destroyer, transform.position, transform.rotation);
    			Destroy (gameObject);
    		}
    }
    btw. Is there a way to make this window with text above smaller?
    Oh, btw. If you have something like taging in blender you can just make script which detects when node is tagged i.e "slow down" and change speed to lower in that case.
    Last edited by zero3growlithe; 19th January 2012 at 07:45 PM.

  20. #1140

    Default

    Thanks for the tip Zero- Blender does not have that (very useful- I'm jealous!) ability. I can do something similar by giving an object a property and then creating a list that looks for said property.

    Although I don't use it, Unity sounds very well developed with a lot of useful tools.

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •