Jump to content

  • Log In with Google      Sign In   
  • Create Account


How is my programming format


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
8 replies to this topic

#1 Cdrandin   Members   -  Reputation: 443

Like
1Likes
Like

Posted 07 January 2013 - 01:26 AM

I tend to be a bit picky as to how I format my code. Just wondering if all this is necessary and also if the some what obvious functions like ApplyGravityForce() and HandleEvents() are even worth while?
class TwoDPlatformController ( MonoBehaviour ): 	
	public walkSpeed   as single     = 6.0F
	public runSpeed	   as single     = 10.0F
	public jumpSpeed   as single     = 8.0F
	public gravity     as single     = 20.0F
	public doubleJump  as bool       = true
	public midAirJumps as int 		 = 2
	
	private moveDirection as Vector3 = Vector3.zero
	private curNumJump as int        = 1
	private controller as CharacterController
	
	def Update():
		PlayerMovement()
		HandleEvents()
		
	def PlayerMovement ():
		controller = GetComponent(CharacterController)
		
		// While character is grounded allow to jump and horizontal movement
		// Player is restricted in jump movement.  One way jump if double jump disabled
		if controller.isGrounded:
			moveDirection = Vector3( -1 * Input.GetAxis('Horizontal')*walkSpeed, 0, 0 )
			SingleJump()
		
		//Player is in the air
		else:
			ExtraJump()
			
				
		ApplyGravityForce()
		
		controller.Move( moveDirection * Time.deltaTime )
		
	def SingleJump ():
	// Immediately present number of allowed mid air jumps when landed
	// Allow player to jump
		
		curNumJump = 1	
		if Input.GetButton( 'Jump' ) or Input.GetKeyDown( 'w' ):
			moveDirection.y = jumpSpeed
			
	def ExtraJump ():
	// Allow player the capability to jump multiple times in mid air
	//  Number of times is based on 'midAirJumps'
	//  Once limit is reach player must land before jumping again
	// When jumping horizontal movement is unlocked for that jump then it will be locked again
	
		if (Input.GetButtonDown( 'Jump' ) or Input.GetKeyDown( 'w' )) and doubleJump:
			//Player has not met his extra jumping limit
			if curNumJump < midAirJumps:
				moveDirection = Vector3( -1 * Input.GetAxis('Horizontal')*walkSpeed, 0, 0 )
				moveDirection.y = jumpSpeed
				curNumJump += 1	
	def ApplyGravityForce ():
		moveDirection.y -= ( gravity * Time.deltaTime )
		
	def HandleEvents ():
	// Events taken place are of action types: shooting, special attacks, interactable object, etc
		pass


Sponsor:

#2 StaticCube   Members   -  Reputation: 200

Like
2Likes
Like

Posted 07 January 2013 - 02:21 AM

Hi Cdrandin,

 

First of all let me tell you I don't program unity but do program python, c#, c++, etc. Looking at the format I personally think it looks really clean. Only thing I would change myself (if possible) is put the description of the function above the function. Also I am missing a simple outline for the class (meaning a bit of comments explaining what this class is for).

 

As for the rest of the code I think it looks pretty nice.

 

With kind regards,

 

StaticCUbe



#3 Bacterius   Crossbones+   -  Reputation: 8658

Like
1Likes
Like

Posted 07 January 2013 - 02:56 AM

I'm not personally for spaces before or after brackets, but at a high level I find the code to be actually readable. The comments are useful and relevant, it's clean. Maybe try and be a bit more consistent with newlines.


The slowsort algorithm is a perfect illustration of the multiply and surrender paradigm, which is perhaps the single most important paradigm in the development of reluctant algorithms. The basic multiply and surrender strategy consists in replacing the problem at hand by two or more subproblems, each slightly simpler than the original, and continue multiplying subproblems and subsubproblems recursively in this fashion as long as possible. At some point the subproblems will all become so simple that their solution can no longer be postponed, and we will have to surrender. Experience shows that, in most cases, by the time this point is reached the total work will be substantially higher than what could have been wasted by a more direct approach.

 

- Pessimal Algorithms and Simplexity Analysis


#4 Dan Mayor   Crossbones+   -  Reputation: 1712

Like
2Likes
Like

Posted 07 January 2013 - 07:40 AM

Looks good, I would however recommend learning something more powerful than VB if you expect to make responsive high paced games that those of us with older computers (You know the majority of your potential players) can play.  Yes the obvious functions are always better to have.


Edited by Dan Mayor, 07 January 2013 - 07:42 AM.

Digivance Game Studios Founder:

Dan Mayor - Dan@Digivance.com
 www.Digivance.com


#5 Mussi   Crossbones+   -  Reputation: 1897

Like
1Likes
Like

Posted 07 January 2013 - 07:51 AM

Looks good, I would however recommend learning something more powerful than VB if you expect to make responsive high paced games that those of us with older computers (You know the majority of your potential players) can play. Yes the obvious functions are always better to have.
That's not VB, I think it's Boo.

Edited by Mussi, 07 January 2013 - 08:25 AM.


#6 Dan Mayor   Crossbones+   -  Reputation: 1712

Like
1Likes
Like

Posted 07 January 2013 - 11:57 AM

Looks good, I would however recommend learning something more powerful than VB if you expect to make responsive high paced games that those of us with older computers (You know the majority of your potential players) can play. Yes the obvious functions are always better to have.
That's not VB, I think it's Boo.

 

Well that might just negate my comment.  If it's a scripting language particular to the engine than it probably is among the best performance you would get with the entire kit.  Just noticed the lack of ; and {} which immediately makes me thing VB or even worse Python :-o


Digivance Game Studios Founder:

Dan Mayor - Dan@Digivance.com
 www.Digivance.com


#7 SimonForsman   Crossbones+   -  Reputation: 6065

Like
-1Likes
Like

Posted 07 January 2013 - 12:39 PM

<blockquote class="ipsBlockquote" data-author="Dan Mayor" data-cid="5018658"><p><br /></p><blockquote class="ipsBlockquote" data-author="Mussi" data-cid="5018581"><p><br /></p><blockquote class="ipsBlockquote" data-author="Dan Mayor" data-cid="5018578"><p>Looks good, I would however recommend learning something more powerful than VB if you expect to make responsive high paced games that those of us with older computers (You know the majority of your potential players) can play. Yes the obvious functions are always better to have.</p></blockquote>That's not VB, I think it's Boo.<p><br /></p></blockquote>&nbsp;<br />Well that might just negate my comment. &nbsp;If it's a scripting language particular to the engine than it probably is among the best performance you would get with the entire kit. &nbsp;Just noticed the lack of ; and {} which immediately makes me thing VB or even worse Python :-o<br />&nbsp;<br /><p><br /></p></blockquote><br />Both VB.Net and IronPython runs pretty darn fast (performance is comparable to what you get with normal C# code), and that is indeed Boo (Which is a .Net language similar to Python). (The only really slow Python implementation i can think of is CPython, but even that is fast enough if you got an engine that does the heavy lifting for you)<br /><br />Also, what do you have against Python ? you are probably the first programmer i've seen who say that python is worse than VB (I don't think it is even possible for a language to be worse than VB, (COBOL or Brainfuck might possibly manage it, but even that is debatable)
I don't suffer from insanity, I'm enjoying every minute of it.
The voices in my head may not be real, but they have some good ideas!

#8 Casey Hardman   Crossbones+   -  Reputation: 2196

Like
0Likes
Like

Posted 07 January 2013 - 04:02 PM

I personally think it looks clean.  I used to smash all of my code into one place (e.g. all logic in the Update() function in Unity) and use "folding comments" to organize it, but now I'm starting to prefer separating them into functions and applying that to all my latest code.

 

I'm not sure if this actually works with Boo, but if you're using the text editor that comes with Unity, called UniSciTE, then it allows you to make "folding comments" like so:

 

 

//{Movement:
//Movement code goes here
//}
//{Jumping:
//Jumping code goes here
//}

These are like 'regions'.  I'm not sure if regions are applicable to other languages/IDEs, because I've only used them in Visual Studio C#, but I know they don't work in UniSciTE.

Anyway, they make it so that you can fold the selection, and hide everything but the first comment with the starting brace in it, like "//Jumping:"

 

I think there are a lot of people who are against the idea of folding up your code with regions (or "folding comments"), but I just wanted to let you know about them if you wanted to use them.  They're pretty much the only way to fold stuff up in UniSciTE manually, without that something being a function, class, etc.

 

Anyway, as I said, you might not want to use this technique and it might not even work with Boo, but too bad because knowing about it is already taking up space in your brain!



#9 mholmes   Members   -  Reputation: 189

Like
0Likes
Like

Posted 07 January 2013 - 08:35 PM

Very nice but comment your functions, 6 months from now you wont remember what you wrote so u need to leave your self notes or someone else notes.






Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS