• Hey, guest user. Hope you're enjoying NeoGAF! Have you considered registering for an account? Come join us and add your take to the daily discourse.

Indie Game Development Discussion Thread | Of Being Professionally Poor

Status
Not open for further replies.

razu

Member
Need some little help:
In short I want the red vector:
6PzbTWB.png


I want my character to slide off if the angle of the surface he's standing on is too steep.

I thought I would just get the cross product of the normal and up vector, giving me the axis(green vector) to rotate the normal.
Then I just rotate the normal around this vector 90° and -90° and then compare their y value, whichever has the lowest y value is the vector facing downwards?

Is this the correct way to do it?

e: code might help:
Code:
	//get the direction to which to slide the player if surface is too steep
	private Vector3 getSlideVector(Vector3 normal){
		Vector3 axis = Vector3.Cross(normal, Vector3.up);
		Vector3 a1 = Quaternion.AngleAxis(90, axis) * normal;
		Vector3 a2 = Quaternion.AngleAxis(-90, axis) * normal;
		
		return a1.y < a2.y ? a1 : a2;
	}

I guess you could, but I would cross up with the normal, normalise the result so it's unit length, this will be the green vector, (or negative green). Now cross the green vector with the normal, the result will either be the red vector, or negative red.

Will explode if the normal points directly up though, so you probably want to check for the normal's y vector being really close to 1.0f.
 

razu

Member
I guess you could, but I would cross up with the normal, normalise the result so it's unit length, this will be the green vector, (or negative green). Now cross the green vector with the normal, the result will either be the red vector, or negative red.

Will explode if the normal points directly up though, so you probably want to check for the normal's y vector being really close to 1.0f.

So then, to get the downhill vector, use the red if its y component is negative, else reverse the direction...
 

SublimeO12

Neo Member
I guess you could, but I would cross up with the normal, normalise the result so it's unit length, this will be the green vector, (or negative green). Now cross the green vector with the normal, the result will either be the red vector, or negative red.

Will explode if the normal points directly up though, so you probably want to check for the normal's y vector being really close to 1.0f.


There is a cleaner and more general solution to this type of issue, its called a vector projection. What you want to do in this case is project the "down" vector into the plan defined by normal N. The formula for this is:

v_projected = v - Dot(v, n) * n

Where "v" is the original vector and "n" is the plane normal.

Hope this helps!
 

missile

Member
Hey! When you actually get round to finishing your game.. you too may appreciate a break from it all!! :D ...
Rest assured. :+

... There's nothing in Unity making the boat float. I'm just applying a force to the rigidbody. It could be any shape at all.
There won't, indeed. My question should had been more in the way whether Unity
provide a method for computing the volume of an object, and if this method
would also support non-convex objects. But I guess it won't. Am just asking
because computing the center of buoyancy, where the buoyancy force should be
applied, requires the volume of the ship submerged at the given moment. Yet
the center can be faked to certain degree.
 

missile

Member
Can a smart person please explain this gem:
Code:
Vector3 dir = Quaternion.AngleAxis(90, cam.transform.right) * hit.normal;
I know this rotates the normal vector 90° around the right axis and it does what it should but I want to know what exactly is going on here.
Quaternion.AngleAxis(90, cam.transform.right) makes me go
214x700px-LL-1ecb6496_JackieChanMindblown.jpeg


Here we go...


About the Connection between Rotations and the Quaternions

Before we dive into the quaternions and their connection with rotations, I
want to show that there exists something very similar to the quaternions in
representing rotations, which is way easier to understand and will help to
bring the connection across.

The Principle Axis and Angle of Rotation
Theorem: Any coordinate frame can be rotated into any other frame (having the
same origin) by a single rotation through a given angle and axis.

Hence, instead of given a rotation of a frame by three angles and composing a
rotation matrix out of it, the same rotation can be represented by just one
angle and one axis. The prove of this theorem is based on showing that the
axis in question is actually a unit eigenvector of the corresponding
rotation matrix with respect to the eigenvalue of +1. Hence, it's the vector
which remains untouched by the rotation matrix, fixed in both frames, i.e. it
stays the same after one has applied the matrix on it. For this reason, with
respect to rotations, this vector is called the principle axis of rotation and
the associated angle the principle angle of rotation.

With some mathematics one can compute out of any rotation matrix the principle
axis of rotation and its angle, and vice versa.

By re-reading the sentence above, one may already recognize that what is done
here is essentially the same procedure for converting a rotation matrix to a
quaternion and vice versa, whereas we haven't spoken about the quaternions
just yet.

So if we put the principle rotation axis e = (e1, e2, e3) and angle phi into a
vector, we have

p = (phi, e1, e2, e3).

Now lets compare with a quaternion used for a rotation

q = (q0, q1, q2, q3)

and lets recall that we can transform p into a matrix and a matrix back into
p. Likewise, this is the same procedure with the quaternions. Hence, the
principle axis and angle do somehow reflect the quaternions used for rotation.

But why do we need quaternions for doing rotations than? And why does it even
work? Can't we simply use the principle axis and angle (representing a desired
rotation) to rotate any vector about this axis by the given angle straight?
Unfortunately, we can't. At least not in any standard way.

If we look at any rotation matrix, we know how to rotate any given vector
using such a matrix, i.e. by simply multiplying the vector with the matrix.
But how to rotate a given vector while the rotation is given just as an axis
and an angle? The principle axis and angle together give four parameters
(four-dimensional), but the vector to be rotated has just three dimensions.
Hence, the dimensions won't even match. So how to combine these together to
get a resultant vector being rotated around the principle axis by the given
angle? One might think; what about extending the three-dimensional vector to a
four-dimensional one and to combine them together in some why? Let's see some
examples;

[angle-axis * vector]
(phi, e1, e2, e1) * (0, v1, v2, v3) = does not work.

[angle-axis + vector]
(phi, e1, e2, e1) + (0, v1, v2, v3) = hmm, doesn't work either.

For some reason we have to transform the angle-axis pair to something useful
such that we can combine it with a vector giving the rotated vector as a
result. Well, we already know one solution to this problem, i.e. we can
convert the angle-axis pair to a matrix, but this is computationally very
expensive and would defeat the entire point to begin with.

This is where the quaternions come into play. The field of quaternions,
despite having many other important features, can be used to build so-called
rotation quaternions to transform a three-dimensional vector into a rotated
one by just multiplying them together straight.


The Quaternions and their Imaginary Vector Space
The fundamental insight into the quaternions, being used for rotations, is the
following; Every quaternion is composed of a real number and an imaginary
part. This is similar to the complex numbers, however, the imaginary part of a
quaternion is not one-dimensional, like with the complex numbers (imaginary
axis), the imaginary part of a quaternion is three-dimensional. Hence, the
imaginary vector part of a quaternion lives in a three-dimensional vector
space, an imaginary vector space its elements we will call imaginary
quaternions, i.e. quaternions having no real part. This imaginary vector space
plays an important role for using quaternions for rotation. And the main
insight is that quaternion multiplication encodes rotation and scaling.

For simplicity, let us make a little comparison with the complex numbers.
If one converts two complex numbers into their polar representation, i.e.
z = x+iy into |z|exp(i*phi), which phi the angle the vector (x,y) makes with
the x-axis, and w into |w|exp(i*theta) and multiplying we find z*w = |z|*|w|*
exp(i(phi+theta)). If the norm of w, i.e. |w|, equals 1, i.e. w living on the
unit circle, we have z*w = |z|*exp(i*(phi+theta)). Hence, we can rotate a 2d
vector by transforming it into a complex number while polar-complex-
multiplying it with another complex number living on the unit circle making a
certain angle, the angle we want rotate the vector (x,y) about, with the x-
axis. And given we have z on the unit circle as well, we have z*w = exp(i*(
phi+theta)). This property is essentially a feature of the exponential
function, i.e. translating multiplication into addition, i.e. exp(a)*exp(b) =
exp(a+b). There are many transformation having such useful properties which
are exploited in many applications. For example; the logarithm has a similar
property in turning a multiplication into an addition, i.e. log(a*b)=log(a)+
log(b). Or take the Fourier transformation which translates integration into
multiplication or differentiation into division. For example, with the help
of the Fourier transform, or its cousin the Laplace transform, one can
transform a differential equation into an algebraic one, solving, and
transform back getting the solution.

The way the multiplication is defined for the complex numbers essentially
allows to interpret multiplication as rotation an scaling, which is way
different from standard vector multiplication.

And this same property has its counter partwithin the field of the
quaternions, a four-dimensional vector space. Yet we don't want to rotate a
four-dimensional vector (in contrast with the (x,y) vector above), we just
want to rotate our three-dimensional vector v (now represented as an imaginary
quaternion, i.e. as v = (0,v1,v2,v3)) around a given axis by a given angle.

This restriction from a whole quaternion to only an imaginary one poses some
problems with the multiplication, since the multiplication of a quaternion
with an imaginary one won't necessary give a imaginary quaternion again. Even
worse, multiplying two imaginary quaternions won't necessary give an imaginary
one as well. Hence, the imaginary vector space of the quaternions isn't closed
under multiplication so to speak, i.e. if we equip our usual three-dimensional
vector space (extended with 0 making it four-dimensional and serving as the
imaginary vector space of the quaternions) with the multiplication rule of the
quaternions, then the result of multiplying two imaginary quaternions together
isn't necessarily an imaginary quaternion again. This means the real part of
the resultant quaternion can become non-zero after multiplication and as such
won't represented an imaginary quaternion, i.e. the result lays outside if the
imaginary vector space of the quaternions, i.e. it can become a full
quaternion with a non-zero real part.

Hence, the sole multiplication rule of multiplying two quaternions together
can't solve the problem even if both quaternions are imaginary. However, if
we multiply the result of a quaternion q = (q0,q1,q2,q3) and an imaginary
quaternion v = (0,v1,v2,v3) with the conjugate of q, i.e. (q)^t = (q0,-q1,-q2,
-q3), i.e. q*v*q^t, one can show that the result w, i.e. w = (w0,w1,w2,w3), is
actually an imaginary quaternion, i.e. w = q*v*q^t with w0 = 0. Hence, it is a
vector of our known standard three-dimensional vector space.

Now lets define a mapping Rq by Rq(v) := q*v*q^t. It can be shown that Rq is a
linear isometry for all v over the field of the imaginary quaternions and for
a given fixed unit quaternion q. Now any linear mapping on a finite
dimensional vector space has a matrix representation. The matrix representing
this mapping Rq with respect to a given basis of the quaternions is a rotation
matrix. And it can further be shown that this matrix rotates any imaginary
quaternion v round the imaginary part of q by an angle of 2*phi. This may be
proved by an eigenvalue/eigenvector analysis and can be verified by extracting
the principle axis and angle out of this matrix. It may also be proved by
decomposing the quaternions, i.e. v and q, into their polar-decompositions
each, similar like we can do with complex numbers, and showing that indeed the
resultant w = Rq(v) is a rotation of the imaginary quaternion v (our vector to
be rotated) about the imaginary part of q (our axis of rotation) by an angle
of 2*phi.

Ok, now lets choose a quaternion for q since we already know v (our vector we
want to rotate). Well, lets look at the principle axis and angle from above
again, i.e. p = (phi, e1, e2, e3). Can this already serve as a quaternion with
(e1, e2, e3) being the rotation axis? Nope. The condition for Rq to hold is
that q must be a unit quaternion (norm of q being 1), i.e. q0²+q1²+q2²+q3² =
1. We can normalize p but it won't give the desired rotation axis and angle.
So we need a unit quaternion q which lies on the unit four-dimensional
sphere of the quaternions. Quite interesting, similar to the complex numbers,
we can represent any quaternion as

q = |q|(cos(phi) + qi*sin(phi)),

i.e. its polar decomposition, with qi as a normalized three-dimensional vector
taken out of the imaginary vector space, and combined with the sinus equals
the imaginary part of q, whereas cos(phi) is simply the real part.

Now q is on the unit sphere if the norm of q, i.e. |q|, equals 1, hence, if

q = cos(phi) + qi*sin(phi).

If we use such a quaternion within our mapping Rq, then Rq will rotate any
imaginary quaternion v, and as such any common three-dimensional vector, about
the axis qi by an angle of 2*phi.

But didn't we want to rotate just by phi instead of 2*phi? A simple
substitution of phi with phi/2 yields q = cos(phi/2) + qi*sin(phi/2). Now
the mapping Rq will just rotates by an angle phi. That's why you have to
divide your angle by two while constructing a quaternion for rotation.

Now the principle axis and angle from above (phi,e1,e2,e3), a four-dimensional
vector taken out of our standard four-dimensional real vector space, can be
cast into a four-dimensional unit quaternion as follows;

(phi,e1,e2,e3) -> q = (cos(phi/2),e1*sin(phi/2),e2*sin(phi/2),e2*sin(phi/2)).

Whereas we can't multiply (phi, e1, e2, e3) with any vector v straight to get
the required rotated vector, we can do so with the help of the quaternions,
i.e. with Rq(v) = q*v*q^t. Hence, with the help of Rq we can rotate any three-
dimensional vector around the normalized axis (e1, e2, e3) by an angle phi.

Nice.

Now lets look at

Code:
Quaternion.AngleAxis(90, cam.transform.right) * hit.normal.

This gets translates to

Code:
// angle about to rotate in radians
float phi = 90 * Pi / 180;         

// rotation axis 
float e1 = cam.transform.right.x;
float e2 = cam.transform.right.y;
float e3 = cam.transform.right.z; 

// the defining quaternions
Quaternion q = (cos(phi/2), e1*sin(phi/2),e2*sin(phi/2),e2*sin(phi/2));
Quaternion q^t = (cos(phi/2), -e1*sin(phi/2), -e2*sin(phi/2), -e2*sin(phi/2));

// interpreting hit.normal as an imaginary quaternion
Quaternion v = (0, hit.normal);

// carry out the quaternion multiplication
Quaternion r = q*v*q^t; 
        
// now we just return the imaginary part of r, which is our rotated vector,
// assuming r has components written as r = (w,x,y,z), hence
return Vec3(r.x, r.y, r.z);

The quaternion multiplication can be optimized out by explicitly carrying out
the multiplication and inserting the necessary terms straight into the
unfolded terms. Another optimization is to put the real part in the back of
the vector, i.e. r = (x,y,z,w). Basically, one doesn't even need a quaternion
class at all. Vec4 is enough.

Done.


Some Remarks
Quaternions are more efficient in doing 3d rotation than any matrix can do.
Not only do they need less multiplication in chaining rotations together (yielding
also better precision in the process), they also need less memory, i.e. just 4
floats instead of 9 necessary for a rotation matrix. Another issue stems from
composing rotation matrices together, i.e. they will lose their orthonormal
structure during the process and as such do introduce scaling and shearing.
Hence, a renormalization process is necessary which is computationally *very*
expensive to do. Quaternions do face a similar problem, yet it is sufficient
to re-normalize them. Gimbal lock is another issue to deal with while using
standard rotation matrices composed out of Euler angles. Not so with
quaternions, for they only use one axis of rotation and one angle. So using a
quaternion for rotation can never lead to a lose of a degrees of freedom,
since there is only one axis and this axis will never line up with any other
axis during rotation. It is even a fixed axis. Yet, contrary to common
believe, gimbal lock is also possible with quaternions if one mimics exactly
the process used to compose rotations together using the three Euler angles
and their respective axes to represent a single rotation. For, one can compose
three quaternions, i.e. qx, qy, and qz, representing the rotation about the x-
, y-, and z-axis and their angles, respectively. Applying Rq in sequence, i.e
Rqx(Rqy(Rqz(v))), may also lead to gimbal lock. However, as long as you use
one axis and one angle to represent the intended combined rotation, you are
safe. Quaternions also find application in smooth camera tracking
(interpolation) and can also be used for creating special rotation trick which
are pretty hard to do with Euler angles. Recently, I used quaternions for
computing the attitude of a rigid body (aircraft) out of the angular velocity
by solving a quaternion-differential equation being part of my 6-DOF rigid
body solver. Using quaternions here eases the attitude computation a lot and
also makes it *much more* efficient than Euler angles can ever be.
 

Blizzard

Banned
Combining the length and detail of a math textbook with the simplicity and comprehensibility of a math textbook! ;)

I have a terminology question right off the bat:
The Principle Axis and Angle of Rotation
Theorem: Any coordinate frame can be rotated into any other frame (having the
same origin) by a single rotation through a given angle and axis.
What is a "frame"? As in, what are two "coordinate frames"?

If you imagine the XYZ colored arrows in a game engine, are you talking about rotating those arrows so they point in some new direction, thus giving yourself a new coordinate system?
 

razu

Member
Hold my beer, I can do that...

:D

No, but I have written an NGUI framework for in-game menus and pop-ups! :D




Missile, I shall read those words once I'm not, full of beer!! :D
 

HelloMeow

Member
I just started making a Metroid Prime-ish game, specificly for the Oculus Rift and other hmds.

ibqv2cGwW7UtDT.gif

Why not start with the doors?

Next up: a system that dynamically loads rooms.
 

Five

Banned
I just started making a Metroid Prime-ish game, specificly for the Oculus Rift and other hmds.

ibqv2cGwW7UtDT.gif

Why not start with the doors?

Next up: a system that dynamically loads rooms.

That looks painful, like teeth opening up. I don't think it'd pass a safety inspection, haha. Usually blast doors are designed to not have pointy edges if people are going to pass through. Still a neat look, though.
 

Jobbs

Banned
I put together a high res screenshot mockup using the new character art and old environment art assets from the old game, re-exported in higher res, just to see how it'd look. It's not 100% perfect, because these original environment assets were originalyl designed for a small screen, but some of them may be able to be salvaged.


so.. sort of screenshot saturday. better than nothing.
 

Jobbs

Banned
Your background assets look plenty fine to me, I can't see anything obviously pixelated or ugly looking.

Thanks. These were made when I was relying on the small resolution of the game to hide all kinds of flaws and fake detail for me, which is something I can't rely on anymore.

This is the same area in its last incarnation in the old version of the game, running in engine:

treejump.gif


I had overlays and a lighting thing on here, so you can see everything ahs some nice movement. I want to try and do things the same way, more or less, in the big version.
 

Mikado

Member
This is the same area in its last incarnation in the old version of the game, running in engine:

ghosttreehr.png


treejump.gif




I had overlays and a lighting thing on here, so you can see everything ahs some nice movement. I want to try and do things the same way, more or less, in the big version.

I love the detail in the new one, but I much prefer the foreground/background color separation in the old one. Is that an effect of the lighting you were talking about? Looking forward to seeing the moving new version!
 

Jobbs

Banned
I love the detail in the new one, but I much prefer the foreground/background color separation in the old one. Is that an effect of the lighting you were talking about? Looking forward to seeing the moving new version!

thanks -- I'm still figuring out what works and doesn't work in high res, but yeah, the overlays helped add more distinction between mids and brights, that's a lot of what's at play there.
 

Mikado

Member
cn_ed8c4c58.gif


Despite everything going completely bonkers this past week, we managed to finish all our sprint tasks. For my part I redid all of the locomotion animations.

Also, dawg, since I heard you like sprints, I put a sprint in our sprint.
 

Ashodin

Member
cn_ed8c4c58.gif


Despite everything going completely bonkers this past week, we managed to finish all our sprint tasks. For my part I redid all of the locomotion animations.

Also, dawg, since I heard you like sprints, I put a sprint in our sprint.

Beautiful!
 
Combining the length and detail of a math textbook with the simplicity and comprehensibility of a math textbook! ;)

I have a terminology question right off the bat:

What is a "frame"? As in, what are two "coordinate frames"?

If you imagine the XYZ colored arrows in a game engine, are you talking about rotating those arrows so they point in some new direction, thus giving yourself a new coordinate system?
Yes. The entire "frame" of XYZ is rotated. So then you have two coordinate frames - the original one and the new one created by the rotation (and you also have the relationship between these two frames, i.e. whatever rotation you performed).
 
Hi,

This is my first post in this thread cause i'm just starting to think of developing a game. My team would be made of me (modeling 3d), a guy that knows java, and another guy that makes awesome music. I just started learning Unity3d but man, without any knowledge of code... i find it very difficult to understand the possiblities of Unity3d. I've got a few questions that i'm not sure my programmer friend will be able to answer.:

I model my assets in c4d, i saved some assets in obj and tried to import them into unity and it worked. Ow here's my question: how do i know how detailed i can make my assets before it would make my game a laggy mess. Can i add a lot of detail to the mesh? Is there a better format to use than objs?
2nd question: I would like to make my explosions in cinema4d aswell as i d prefer to make different kind of explosions depending on the ship i explode ... is there a wy to import these kind of animations in unity or am i limited to explosions that unity provides me ( im not saying its limited but yeah i dont know unity as well as c4d). Thanks to all future responses:) ...

Ps: is their a good site except from unity3d.com to learn about unity?
 

eot

Banned
There is a cleaner and more general solution to this type of issue, its called a vector projection. What you want to do in this case is project the "down" vector into the plan defined by normal N. The formula for this is:

v_projected = v - Dot(v, n) * n

Where "v" is the original vector and "n" is the plane normal.

Hope this helps!

I'm a bit tired, but I think this will give you a vector pointing in the opposite direction of the red one in the picture, so you'll have to reverse the sign.
 

Ashodin

Member
made another higher res mockup using old environment assets + new character sprites.



I see some potential to salvage this stuff too but it needs some cleanup.

Volumetric fog! Just kidding. Looks great, Jobbs! Just needs more higher rez art, really.
 

Jobbs

Banned
Volumetric fog! Just kidding. Looks great, Jobbs! Just needs more higher rez art, really.

thank you kindly. I understand it's not quite there but I'm fiddling with it and testing it on a 42 inch TV and I think I can reuse more of the environment assets than I ever thought -- I just need to repurpose them/touch them up. But I think I'm hitting the ground running now because I won't be starting from total scratch.
 

Five

Banned
Jobbs, what resolution are you targeting? That art would look great if you don't care about going over 720p. I think people are expecting 1080p as a minimum on HD games these days, though.
 

Jobbs

Banned
Jobbs, what resolution are you targeting? That art would look great if you don't care about going over 720p. I think people are expecting 1080p as a minimum on HD games these days, though.

It's 1080p. I shrunk those screens to 720p just to make them easier to look at in a browser window.

Keep in mind these are mockups, using environment art assets I originally made for a much lower res flash game. So I am basically planning to salvage it by touching up some of it and repurposing it, as well as making new assets as well, of course.
 

Turfster

Member
Windows 8.1 update kills the machine ID for some reason, so if you're using Unity Pro, make sure you return the license before doing the update. It was no fun reactivating the free one, so I can't imagine what kind of problem the machine-limited Pro will have.

Edit: Dammit, it also broke the Visual Studio C# Express workaround batchfile...
 

Five

Banned
It's 1080p. I shrunk those screens to 720p just to make them easier to look at in a browser window.

Keep in mind these are mockups, using environment art assets I originally made for a much lower res flash game. So I am basically planning to salvage it by touching up some of it and repurposing it, as well as making new assets as well, of course.

Oh, good. Well, it looks like a good start.
 

razu

Member
I model my assets in c4d, i saved some assets in obj and tried to import them into unity and it worked. Ow here's my question: how do i know how detailed i can make my assets before it would make my game a laggy mess. Can i add a lot of detail to the mesh? Is there a better format to use than objs?

Ps: is their a good site except from unity3d.com to learn about unity?


The format is irrelevant as Unity will convert it to its own runtime format anyway.

As for detail... all depends on the target machine you want to run on. You can model and texture more efficiently, but you can never say make a model n triangles and it'll be fine.


I'd advise setting your sights on some really simple goal, (like moving a box around with the arrow keys and detecting when it has entered a trigger), and trying to implement that, a bit at a time. I don't find full tutorials particularly helpful. Once you're up and running you'll use the unity community for solving the little steps, and I've found them super-awesome for that.

Good luck! :D



I'm a bit tired, but I think this will give you a vector pointing in the opposite direction of the red one in the picture, so you'll have to reverse the sign.

My adventures in maths says everything almost always points the wrong way. Negating and re-running is a constant in my dev life... :D
 

HelloMeow

Member
More experimenting with doors. I'm going for a clean, minimalistic look. Mostly to get things done, but also because I think it looks nice. When it's done, the player will be able to see the door because its glowing in a specific color, with sharp edges.

I'm not sure which iteration i'm going to use, but it's getting there.

ttSoSSV.gif

mmiivUN.gif

8ZiK4Tr.gif
 

Tiu Neo

Member
Hi,

This is my first post in this thread cause i'm just starting to think of developing a game. My team would be made of me (modeling 3d), a guy that knows java, and another guy that makes awesome music. I just started learning Unity3d but man, without any knowledge of code... i find it very difficult to understand the possiblities of Unity3d. I've got a few questions that i'm not sure my programmer friend will be able to answer.:

I model my assets in c4d, i saved some assets in obj and tried to import them into unity and it worked. Ow here's my question: how do i know how detailed i can make my assets before it would make my game a laggy mess. Can i add a lot of detail to the mesh? Is there a better format to use than objs?
2nd question: I would like to make my explosions in cinema4d aswell as i d prefer to make different kind of explosions depending on the ship i explode ... is there a wy to import these kind of animations in unity or am i limited to explosions that unity provides me ( im not saying its limited but yeah i dont know unity as well as c4d). Thanks to all future responses:) ...

Ps: is their a good site except from unity3d.com to learn about unity?

http://walkerboystudio.com/html/unity_training___free__.html has an Unity training course. It's pretty good, imo.
 

JulianImp

Member

I'd either go with 1 or 3. I think 1, with the least number of edges on it, is easier to read, and if you're upping the edge count, might as well skip 2 and go straight to lots of edges like on 3.

The door's frame also appears to make a huge difference in how the door feels, so perhaps you could experiment around with that as well.
 

missile

Member
I swear missile is a math machine.
Na, I just had to solve an involved attitude/orientation problem. Using the
quaternions for the attitude dynamics (q' = 1/2q*w) makes my craft turn so
nicely, and it is also computationally much more efficient. :D


Combining the length and detail of a math textbook with the simplicity and comprehensibility of a math textbook! ;)

I have a terminology question right off the bat:

What is a "frame"? As in, what are two "coordinate frames"?

If you imagine the XYZ colored arrows in a game engine, are you talking about rotating those arrows so they point in some new direction, thus giving yourself a new coordinate system?
Like mariosbrother said.
I used coordinate frame because it appears more often in the English
technical/engineering literature, at least I've read it a lot in there,
whereas in the German literature the word coordinate system, dt.
Koordinatensystem, is used more often.


RARRAGHHH Artist is almost done with the hot scene

101813-002a.jpg
...
Pretty good. Your game comes along nicely!


http://www.ghostsonggame.com/miscd/ghosttreehr.png
I hate Gauss! Na, just kidding! I somehow like the grainy effect of the gifs
much more. xD


cn_ed8c4c58.gif


Despite everything going completely bonkers this past week, we managed to finish all our sprint tasks. For my part I redid all of the locomotion animations. ...
Cool stuff! I really like the ambient color(ing). :+


... My adventures in maths says everything almost always points the wrong way. Negating and re-running is a constant in my dev life... :D
It is very often the case that things in mathematics are unique up to a
sign. While we are at it, the rotation quaternions aren't unique either. Just
multiply a unit quaternion by -1 (which translates to shifting phi/2 by Pi)
and you will get the same rotation. The insight is the following; each point
on the unit sphere of the quaternions describes a rotation, yet the point
opposite to it (the antipode) represents the same rotation. This non-
uniqueness can lead to a serious problem while converting a rotation
matrix into a quaternion when using the wrong conversion rule, whereas the
conversion from a quaternion to a matrix isn't effect since all matrix
entries appear as a quadratic product of the components of the quaternion.
 

Jobbs

Banned
I hate Gauss! Na, just kidding! I somehow like the grainy effect of the gifs
much more. xD

What's gauss? We actually have a gauss cannon as a findable weapon, btw.

Re. the grainy, noisy look of the game before -- I want to retain that. It's just a matter of getting it right on a much bigger screen. Here's a mockup with the old noise and lighting overlays approximated:

mockup1b.png
 

Ouren

Member
Concept for Golden Nights
tumblr_mup01vPxOo1rffrdko1_1280.jpg


Animated Screen for miniFlake a11
YD41PZS.gif


(the lighting in miniFlake in that screen is "work lighting", and not the same as the release build)
 

Ouren

Member
Just picked up a Vita and was wondering what PlayStation mobile is like for development? Is it worth messing around with?

yea!
it's free to sign up now. You should totally noodle around with it if you know C#.

(Unity is coming to PSM, but won't be out till next year. If you don't know C# that well, that's a great place to get started. Especially since Unity2D will be out soonish too.)
 

Bollocks

Member
yay, basic character movement is working now.
Stress tested it by creating a plane and adding noise to it, didn't clip through geometry while traversing so I call that a success, now off to implement jump, crouch and walk.
Can't wait to have the basic movements down so I can concentrate on 3d modeling and make a proper test level.

@missile, thx will read later.
 

Jobbs

Banned
made a new outdoor overlay.


Keep in mind that my grains/noise type textures are animated and moving. they don't sit there statically.

I understand that some people may prefer a cleaner look, but in this case, it contributes to my vision and along with the sound design it contributes to the overall presentation of creepy isolation and sci fi. There's more tweaking and more work to be done, but after a lot of testing with these and other images on my 42 inch TV I'm starting to feel pretty good about how the game will look when played this way, after being a bit uncertain (this game's origins were as a low res flash game where I worked on it in that capacity for a year -- moving to high res and TVs is a relatively recent development and everything's in a transitional phase).
 
made a new outdoor overlay.



Keep in mind that my grains/noise type textures are animated and moving. they don't sit there statically.

I understand that some people may prefer a cleaner look, but in this case, it contributes to my vision and along with the sound design it contributes to the overall presentation of creepy isolation and sci fi. There's more tweaking and more work to be done, but after a lot of testing with these and other images on my 42 inch TV I'm starting to feel pretty good about how the game will look when played this way, after being a bit uncertain (this game's origins were as a low res flash game where I worked on it in that capacity for a year -- moving to high res and TVs is a relatively recent development and everything's in a transitional phase).

Wow, that's gorgeous.
 

GulAtiCa

Member
Started working on the graphics for my game. Still a good bit to go and much to improve, but you can kinda see what I have in mind for the game. The tv resolution is actually 1080p/etc, but I reduced the image in half as well as compressed it a little so that it wouldn't be 4 MB. All drawn in crayons! :lol

TV:
zacisa_tv.png


Gamepad:
zacisa_gp0.png
 

HelloMeow

Member
I'd either go with 1 or 3. I think 1, with the least number of edges on it, is easier to read, and if you're upping the edge count, might as well skip 2 and go straight to lots of edges like on 3.

The door's frame also appears to make a huge difference in how the door feels, so perhaps you could experiment around with that as well.

Those three versions were the result of doing exactly that. I tried different frames and different numbers of moving parts. These seemed to fit the most.

I think I will go with the 6-edged frame and the 6 moving parts. And maybe use the 12 moving parts to represent shielded or locked doors.
 

Blizzard

Banned
I FINALLY spent some time on my ancient game project again.

I copied almost everything that should be relevant to it from my old desktop onto my new faster machine. In the process, I upgraded some third-party libraries I was using, and cleaned up my build directory structure to keep things organized more nicely in one place.

I have one final third-party library to rebuild tomorrow (Freetype, the horrors of low-level font stuff), and then I can try to finally rebuild my test project again. I expect linker nightmares.

Apparently the last time I messed with my engine, I left it in a non-compiling state (bad programmer!!) due to the shader experiments. As I mentioned I intended to do, I went through with removing all that test code again. It felt sad and like I was being defeated, but I backed it up in a different directory in case I ever go down that road again.

Onward!
 

missile

Member
What's gauss? We actually have a gauss cannon as a findable weapon, btw.
Carl Friedrich Gauss, Gaussian blur, bell shape, smoothing, etc. Meaning;
your graphics are very smooth. But you said you want to keep the noisy look as
of before. :+

Re. the grainy, noisy look of the game before -- I want to retain that. It's just a matter of getting it right on a much bigger screen. Here's a mockup with the old noise and lighting overlays approximated:

mockup1b.png
 
More experimenting with doors. I'm going for a clean, minimalistic look. Mostly to get things done, but also because I think it looks nice. When it's done, the player will be able to see the door because its glowing in a specific color, with sharp edges.

I'm not sure which iteration i'm going to use, but it's getting there.

ttSoSSV.gif
mmiivUN.gif
8ZiK4Tr.gif

I'm a fan of number 1 personally. Its a little cleaner with less segments and the aperture is more distinctly visible
 
Status
Not open for further replies.
Top Bottom