Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411196 Posts in 69314 Topics- by 58380 Members - Latest Member: feakk

March 18, 2024, 06:43:02 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Moon Fields - PvP Zelda
Pages: 1 2 [3] 4 5 ... 9
Print
Author Topic: The Moon Fields - PvP Zelda  (Read 19397 times)
xix
Level 5
*****


View Profile
« Reply #40 on: June 10, 2017, 08:38:45 AM »

re: Sprite Art, Fake Sprite Art, and Clarity



The game's internal resolution is 16 pixels/voxels per Unity Unit. The orthographic camera height is set so that the 16:9 width is 480 x 270 voxels. The depth ratio is < 1:1 to the height, so the visible horizontal plane 3:2 width to depth.

The reason I bring this up is because I do a lot of fake pixel work in the game. I think all 3 are readable, but they all have different "feelings". The image on the right is set so the visible resolution is about 1:1 to the pixel size. The image in the middle is set so that voxels have a grid of about 4x4 pixels to show off all their angles. And the image on the left that grid is set to about 2x2. I find each zoom level to feel good for different reasons. Just thought I'd pass this along in case any of you have thoughts on the matter.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
Canned Turkey
Guest
« Reply #41 on: June 10, 2017, 01:14:49 PM »

The right one has the most stylistic continuity in my opinion.
Logged
xix
Level 5
*****


View Profile
« Reply #42 on: June 10, 2017, 04:00:39 PM »

Yeah, the right image's coherence is its best trait. If I were to break it down:

Right Image:
Pros: Most coherent. It hides the fact that it's sprites + voxels more. It looks pretty crazy cool with 360* 60fps sprites.
Cons: Details get lost quickly. The game has nuance at subpixel which is gone immediately, but on top of that that the voxel detail is unreadable (see the grill at the top of the item hanging off the character's right side).

Middle Image:
Pros: Tons of detail visible. The sprites themselves become more clear because of the different 'rendering techniques'. It's also fairly unique and sets TMF apart from other games.
Cons: There's no precedent for this art, so it feels a little bit like cheating. It could also be read as *unnecessarily detailed*.

Left Image:
Pros: Smallest amount of resize that maintains a integer pixel multiplier for the sprites, and still is large enough to guarantee all of the voxel details despite any kind of 3D rotation.
Cons: Not as clean as the middle image and not as authentic pixelart as the right image.

I'm pretty sure at the end of the day I'm going to have to figure out how to put this in the game options. I'd really like to see the game run at both 4k AND at 480x270. Ha
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
io3 creations
Level 10
*****



View Profile WWW
« Reply #43 on: June 10, 2017, 06:17:18 PM »

Been lurking around for a while.   Ninja

I like the general direction with the visuals but I wonder if the "pixel" direction is going to work.  I mean, while the image look pixellated, there are certain aspects of the colors or light reflections give away that it's not "pure" pixel art.  Or in other words, it isn't "hand-crafted" pixel gfx.

In part because of that and also as you mentioned in your pros/cons, I prefer the middle image because it has the most details.  Certain features actually look more like 3d voxel than 2d pixel, but it could still work.  That is my subjective opinion and of course course it is your game and it's better if you do with your vision. Smiley
Logged

xix
Level 5
*****


View Profile
« Reply #44 on: June 10, 2017, 07:27:26 PM »

Thanks for coming out of lurking to post your thoughts!

Yeah, I totally think that as soon as it becomes apparent that it's voxels driving everything, it's beneficial to drop the pretense that it's pixel art and just go for it. Surprisingly (to me), it takes totally different amounts of time/exposure with the game to figure that out! Like, some people have seen it and played it for hours and thought it was just a really cool 2D game for a long, long time while others see it right away.

A 4k resolution monitor would upscale the pixel resolution by 8x. That's 64 pixels to describe a rotated voxel! So huge! I think that would be a really cool way to show off crazy detail. I think it'd be crazy superfluous, but it'd be cool to look at, too. Right now I don't even bother to be very specific because of my integrated GPU.

When I demo, sometimes I run at ~40fps at 1080p, and sometimes I'll go >60fps at 720p, though I'd prefer to run at 540p native (for >60fps) and upscale to 1080p. I need to figure out how to get Unity to render to a 540p screen and then scale that to 1080p, though. Aye. Learning.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
io3 creations
Level 10
*****



View Profile WWW
« Reply #45 on: June 10, 2017, 07:57:11 PM »

That doesn't seem very surprising.  Some of it could be due to experience.  Having played lots of different types of games could help with recognizing techniques, approaches that you have seen before.  Similarly, certain things could look "too good" or nearly impossible to be done in 2d. There might be other reasons, such as how we perceive things that could affect what goes on in our heads. Smiley

Regarding pixel scaling, maybe you can ask snackycactus.  While didn't go into much details (s?)he made a post about pixel perfect scaling on the Go Go Kudamono! devlog.  https://forums.tigsource.com/index.php?topic=59570.msg1332896#msg1332896   Even if you manage to figure something out, maybe a "second opinion" could be useful it it's better (e.g. less CPU usage).
Logged

xix
Level 5
*****


View Profile
« Reply #46 on: June 10, 2017, 08:31:19 PM »

Thanks for the assist. SnackyCactus's project looks like exactly the cool thing I'm into, but I am not resizing sprites themselves as much as I'm resizing an orthographic camera. I'm currently thinking I'm going to point a Game Camera to a Render Texture, and then have the Main Camera look at *that*. I am pretty sure that's the best practices workflow, though I've only google searched and done a short test myself. I'll be pretty stoked if that works, though. If so, I imagine that'll let me do some cool FX.

Quote
Similarly, certain things could look "too good" or nearly impossible to be done in 2d

Also, lol, if only that was my problem.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
io3 creations
Level 10
*****



View Profile WWW
« Reply #47 on: June 10, 2017, 09:05:23 PM »

Oh yeah, you're right.  I was focusing on the 540p/1080p and to get that maybe a similar approach that SnackyCactus used could be useful to scale up the pixels by two and get pixel perfect scaling.  But that (probably) wouldn't work for many other resolutions.

In theory, your approach should work.  I'm also curious to see the results and would be curious regarding the extra overhead due to rendering with the second i.e. Main Camera. I'm guessing that if the camera only sees a rectangular mesh with the Render Texture, then that shouldn't be significant.
Logged

xix
Level 5
*****


View Profile
« Reply #48 on: June 11, 2017, 04:24:01 AM »

Ok, yeah, so that was pretty easy. I was checking Unity's stats panel and it drops my frame rate from 240 > 70, but I can't get over 60 anyways. I'll probably unlock it for the guy with the OCed Dual GTX1080Tis and GSync monitor that also like pixelart/voxelart indie games.

Ha. Anyways, just recounting the steps to turn a Unity Camera into a pixel camera:

1) Turn your regular Main Camera into a "Game Camera" by pushing its Target Texture to a newly created Render Texture.
2) In the Render Texture properties set the desired pixel resolution (in my case I set it to 960 x 540, though there are many other options).
3) In the Camera Layer culling, choose a layer only for your second camera (I chose UI) and turn it *off* for your Game Camera
4) Create a second Ortho Camera (I named mine "Composite Camera" because I am going to do UI stuff here).
5) Create a Quad in front of the second Camera, and set its layer to your chosen culling layer (e.g. I set its layer to UI)
6) Position and size the Quad in front of the second camera to fill the screen (e.g. set the Ortho Camera size to 1/2 of the Y scale and set the X size to 16/9ths of the Y scale)
7) Place the Render Texture on the Quad
ocho) Finish making your game
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
xix
Level 5
*****


View Profile
« Reply #49 on: June 12, 2017, 07:27:11 AM »

Redoing the interactions between the stun system and the action system. The above has simmered for long enough that I think I can make it simpler while retaining what I want to do in the game. While I understand that discussing unimplemented systems is pretty difficult, please feel free to discuss all of the dumb names I'm giving everything. All of this will eventually be put into a wiki so it has to be memorable and sssouund cool


REGULAR ATTACK
1) If a player is hit during their action the action is canceled (read: COUNTER HIT) and the player hit is stunned.

2) If a weapon hits a shield OR the smaller environment collider hits the environment the attack is canceled, and the stun is returned to the attacker as returnStun = Stun * ShieldStunReturnMultiplier * InvertedWeaponWeight.
  a) Stun is the amount of time an attack would have stunned its target if it collided
  b) ShieldStunReturnMultiplier is high on Parrying and Metal Shields and lower on Wood and Leather Shields
  c) Power weapons have low InvertedWeaponWeight and lighter weapons have higher IWW

3) If a weapon hits another player they deal the full DAMAGE, STUN, and AddForce() to the other player.

4) If an action has two parts, the canDamage bool gets reset


POWER ATTACK // STRONG ATTACK // FOLLOWTHROUGH ATTACK
1) These attacks will continue through a collision. For the most part this will be faster than having your stun returned (though not necessarily!).


ARMORED ATTACK // RELENTLESS ATTACK
1) If a player is hit during this attack the canDamage bool does not turn off. I can't think of situations where this doesn't pair with a POWER ATTACK.
« Last Edit: June 13, 2017, 10:56:15 AM by xix » Logged


Get the demo itch.io
Follow @lunarsignals on twitter
xix
Level 5
*****


View Profile
« Reply #50 on: June 13, 2017, 11:36:57 AM »

I tested a few things from the above, didn't like it, so I did a little bit more research. I'm redoing the collision system (hopefully) one last time to make it super clean.

WEAPON COLLISIONS AND YOU
Melee Weapon Attacks have multiple phases
1) Startup
2) Active
3) Cooldown

The Active phase is the overall time that either the Attack Collider Box or the Environment Collider Box are active. The Attack Collider Box checks for collisions with other players whereas the Environment Collider Box checks for collisions with the environment.

If the Attack Collider Box hits a shield, a "collision is passed".

If the Environment Collider Box hits the environment, a "collision is passed".

An attack can be tagged as a Power Attack and/or Armored Attack and change what occurs during a collision.



WHAT HAPPENS WHEN DURING A "WEAPON COLLISION":
1) If it's a regular attack then the attack animation is canceled and the attacker is stunned for a period of time. The time = attackStun * stunRetain. If the attack hits a shield then the time = attackStun * stunRetain * shieldStunMultiplier. Stun retain chart below:

Code:
      . stab  . swing
light |   2   |   1
heavy |   1   |   .5
ultra |   .5  |   0

2) If it's a Power Attack then the attack animation is not canceled, but the attack will be set to not damage. This is for relentless attacking (think bashing someone's shield over and over). This will have a special particle effect.



WHAT HAPPENS IF YOU ARE HIT WHEN YOU ARE ATTACKING?
1) If the attacker is not tagged as doing an Armored attack then they are hit out of their attack, the attack animation is canceled, and they are stunned. This is considered a "Counter Hit" and a special particle effect will play.

2) If the attacker is tagged as being Armored then they will take damage but continue on with their attack. This is considered an "Armored Hit" and a special particle effect will play.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
xix
Level 5
*****


View Profile
« Reply #51 on: June 13, 2017, 08:23:27 PM »

FIRST STEP:
Make sure it is *clear* when a weapon has collided with the environment.


In this GIF I *only* use normal attacks. These attacks collide w/ the environment and then stop. The player stun time is set to 1/15th of a second and is *not* indicative of the final stun. But I'm hoping that even with this small amount of stun it is obvious what's happening? I might need to have a second particle effect happen on the player to indicate.


This GIF is a mishmash of normal attacks and Power Attacks. Power Attacks go through collisions *usually* to activate their second phase like the Grand Blade's Slash Down/Slash Up.


This third GIF shows how much more careful you have to be if you're in a tight space with larger weapons. Smaller, stabbier weapons are much more precise.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
xix
Level 5
*****


View Profile
« Reply #52 on: June 14, 2017, 05:35:06 AM »



Totally bonered and didn't think to mess with weapon trails. Fixed that up. Today I'll be working on attack specific damage, stun, and force. That means I need to add kickback and stunback to the attacking player, too.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
io3 creations
Level 10
*****



View Profile WWW
« Reply #53 on: June 14, 2017, 01:33:40 PM »

Ok, yeah, so that was pretty easy. I was checking Unity's stats panel and it drops my frame rate from 240 > 70, but I can't get over 60 anyways. I'll probably unlock it for the guy with the OCed Dual GTX1080Tis and GSync monitor that also like pixelart/voxelart indie games.

Ha. Anyways, just recounting the steps to turn a Unity Camera into a pixel camera:

1) Turn your regular Main Camera into a "Game Camera" by pushing its Target Texture to a newly created Render Texture.
2) In the Render Texture properties set the desired pixel resolution (in my case I set it to 960 x 540, though there are many other options).
3) In the Camera Layer culling, choose a layer only for your second camera (I chose UI) and turn it *off* for your Game Camera
4) Create a second Ortho Camera (I named mine "Composite Camera" because I am going to do UI stuff here).
5) Create a Quad in front of the second Camera, and set its layer to your chosen culling layer (e.g. I set its layer to UI)
6) Position and size the Quad in front of the second camera to fill the screen (e.g. set the Ortho Camera size to 1/2 of the Y scale and set the X size to 16/9ths of the Y scale)
7) Place the Render Texture on the Quad
ocho) Finish making your game
That result is a bit surprising.

If you have Unity 5.6 then maybe you could use: Camera.activeTexture  which gets or sets the temporary RenderTexture target for this Camera.
I'm just wondering if it would be possible to somehow get your Game Camera's RenderTexture and double the size of pixels with a for loop.  I've done something similar to change the texture on a slider but that was a Texture2D applied to the material's renderer.  Not sure if the camera's activeTexture could be accessed/updated that way.

Also, the UI would still need to be added.  Though, if are going for a pixel style then maybe that UI could be rendered for the first camera.
Logged

Zaibach333
Level 0
***



View Profile
« Reply #54 on: June 14, 2017, 02:00:29 PM »

I like the pixel art conversion approach, I feel there's an indefinite number of tweaks which could be applied in the process, which is always something to keep in mind.  when I went about this I am setup similar with the two cameras and quad.  I noticed when an object isn't flush with the camera (this being the camera not looking at a quad) the edges of things tend to flicker on camera pan in the final render, are you doing any panning? if you are then a little script on the camera locking the coordinates to a per pixel size in unity units can make panning look as if the stationary objects were pre rendered asset, or rather, possibly more like pixel art. It's one more update event to the frame rate but if you go this route with moving cameras I'd be more than happy to elaborate. (also I should add this doesn't give the effect while rotating, just panning)

That aside, Moon Fields is looking great  Toast Left
Logged

xix
Level 5
*****


View Profile
« Reply #55 on: June 14, 2017, 02:42:35 PM »

@Zaibach

I'm not exactly sure what you mean. The camera seems to scroll just fine, although I'm not exactly sure what I'm looking for. I just did a test where I zoomed in on the gameview and panned the camera's transform manually. Here's a screen cap:



I am mildly worried about the weird graphics things happening with the voxels, but I think I know what's making that happen, and I think I could fix that by panning at the correct increments.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
Zaibach333
Level 0
***



View Profile
« Reply #56 on: June 14, 2017, 03:05:08 PM »

Here's what to look for, I have overly complex textures on some objects so it's more noticeable here:  the property Camera snapper shows when it's snapping and not.


*sorry to post my game on here

(it's the noise scatter of details finer than the resolution is all, if you can see past the gif compression)
« Last Edit: June 14, 2017, 05:07:43 PM by Zaibach333 » Logged

xix
Level 5
*****


View Profile
« Reply #57 on: June 14, 2017, 07:19:07 PM »

Ah. Yeah I see. That's cool how that works for you. I think you're right that it has a lot to do with the texture resolution. I'll be trying to keep my textures pretty low key so there isn't too much data for the overall rendering technique to parse. I think my fake lofi 540p resolution also helps keep it clean.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
MichaelJohnson12
TIGBaby
*


View Profile
« Reply #58 on: June 14, 2017, 09:15:39 PM »

Hello guys! Can anyone tell me which gaming monitor is the best monitor with 4k resolution. [spam link removed]
« Last Edit: July 11, 2018, 12:15:53 PM by ThemsAllTook » Logged
xix
Level 5
*****


View Profile
« Reply #59 on: June 15, 2017, 05:55:44 AM »

Haha, ooh, is this my first spam post? Maybe I shouldn't have mentioned 4K xbox playstation switch curved LED VR teen fidget spinners.

Also, fun fact, initially the visuals were supposed to make the Z depth = Y height so everything could be at perfect ratios. This obviously isn't the case anymore, so there's actually a 60* X rotation on the camera so a visual change in Y = 2*X, and a change in X is just slightly > a change in Z. Playing with these render target camera thing made me realize that I can make the Y and Z axes = with a 45* camera, and I just have to stretch the final render vertically by sqrt2 to get X=Y=Z on the final image.

*I can't do this because I've invested so much in this engine as is, but holy balls, this is a neat discovery.
Logged


Get the demo itch.io
Follow @lunarsignals on twitter
Pages: 1 2 [3] 4 5 ... 9
Print
Jump to:  

Theme orange-lt created by panic