• Ever wanted an RSS feed of all your favorite gaming news sites? Go check out our new Gaming Headlines feed! Read more about it here.
  • We have made minor adjustments to how the search bar works on ResetEra. You can read about the changes here.
Status
Not open for further replies.

K Monkey

Member
Oct 25, 2017
278
I made a start in completing the lost souls cycle of collecting and releasing



This will be used for unlocking abilities(tbc) and portals to other worlds.
 

Pooh

Member
Oct 25, 2017
8,849
The Hundred Acre Wood
OK so I finally found out what I need to do to get the effect I want on my voxel characters... I need to learn how to do raytracing. It doesn't seem too difficult but the effects I've seen are all for the entire screen. My intent is to do them only on the characters, which is probably necessary anyway to get a playable framerate.

Does anybody have any suggestions? Is this something I can do in a pixel shader?
Any thoughts, missile ? XD
 

Pooh

Member
Oct 25, 2017
8,849
The Hundred Acre Wood
^ What I've been hoping to do is to render 3D voxel characters as though they were 2D pixel art, but with lighting information preserved. This would allow me to animate a voxel model using a skinned mesh but have it "appear" as though it were pixel art. If you imagine a voxel character but imagine each voxel is colored and lit uniformly, as opposed to per face/per triangle, then you'd have the right concept.

I found a french team that made a tool to do pretty much just that, and the outcome looked like this:
vox8bkwa.png


Looking through their blogs (and at other algorithms) it's clear that they're using ray tracing at a fairly low resolution to get the pixel look shown there. You'll notice that it also is reacting to light (as seen on the back of the character, which is shadowed despite not being shadowed in the voxel model itself). They were also able to rotate the model to any angle and have the image update, so it wasn't just creating a spritesheet or anything.

I want to do the same thing, essentially. So I'm trying to figure out if there's a sensible way to do it in a pixel shader, or if I should try writing a Unity script component that will essentially do the raytracing onto a 2D plane. I don't want to do it for the whole scene, only for the characters themselves -- which is probably a requirement because computers are generally too slow to do realtime raytracing.
 

missile

Member
Oct 25, 2017
112
^ What I've been hoping to do is to render 3D voxel characters as though they were 2D pixel art, but with lighting information preserved. This would allow me to animate a voxel model using a skinned mesh but have it "appear" as though it were pixel art. If you imagine a voxel character but imagine each voxel is colored and lit uniformly, as opposed to per face/per triangle, then you'd have the right concept.

I found a french team that made a tool to do pretty much just that, and the outcome looked like this:
vox8bkwa.png


Looking through their blogs (and at other algorithms) it's clear that they're using ray tracing at a fairly low resolution to get the pixel look shown there. You'll notice that it also is reacting to light (as seen on the back of the character, which is shadowed despite not being shadowed in the voxel model itself). They were also able to rotate the model to any angle and have the image update, so it wasn't just creating a spritesheet or anything.

I want to do the same thing, essentially. So I'm trying to figure out if there's a sensible way to do it in a pixel shader, or if I should try writing a Unity script component that will essentially do the raytracing onto a 2D plane. I don't want to do it for the whole scene, only for the characters themselves -- which is probably a requirement because computers are generally too slow to do realtime raytracing.

Tracing an object like that is certainly possible in a pixel shader. You
basically just need to make a quad and call a pixel shader calling a ray-box
intersection test on all your boxes and a shading function if hit anything.

However, you may run into some performance issues. Tracing a model with lots
of boxes isn't fast. You would need to implement an accelerated data-structure
(space subdivision) as well to trace such many boxes in a fast way. But the
problem is that if you want to have your model to be dynamic, then this data
structure needs to be rebuild time and again degrading performance again. It
depends.

Edit:
But with a deferred rendering engine you can let the main engine do the
rastering solving the hidden surface problem with you taking all the
information gathered per-pixel in that G-buffer tracing just secondary rays
(shadow etc.).
 
Last edited:

K Monkey

Member
Oct 25, 2017
278
this is what happens when you forget to check the tag of the surface you land on when dodging. lol

cYjqNZN.gif

Those shadow hand things look awesome in how the move

It's not a bug, it's a speedrun feature! :-D

I had posted about the projectile recoil already, but it's even funnier with some projectile rebound beforehand:

AltruisticHarshIvorygull-max-14mb.gif


This is now turning into "mess with projectiles, the game", and I'm okay with that

Was hard to see at first but thats pretty neat :)

Im just going to share a clip from an older build (you can tell by the hands raised, which is now lowered to off screen in new builds)

 

K Monkey

Member
Oct 25, 2017
278
Haha, you mean the blue line transparent enemies aren't the best thing ever to happen? :-D

Those skeletons look pretty intimidating!

Wait, theres an enemy there? ;P Is this parry reserved for just this form?

yeah, i felt the skeletons were a bit bland previously so wanted to give them a bit more aggression.
 

Camille_

Member
Oct 26, 2017
224
Angoulême, France
Wait, theres an enemy there? ;P Is this parry reserved for just this form?

yeah, i felt the skeletons were a bit bland previously so wanted to give them a bit more aggression.

Both forms can parry and rebound - in fact, parrying with the Warrior gives a lot more options, since angle of reflect is based on the attack you use, and, well... the Warrior has a lot more different attack possibilities :-D

I like how the skeletons breathe fire towards the end of the gif! They look slow, but then they start acting up, I think this can be pretty spooky. The classic contrast of going slow, then suddenly turning fast for one move/attack :-D
 

K Monkey

Member
Oct 25, 2017
278
Both forms can parry and rebound - in fact, parrying with the Warrior gives a lot more options, since angle of reflect is based on the attack you use, and, well... the Warrior has a lot more different attack possibilities :-D

I like how the skeletons breathe fire towards the end of the gif! They look slow, but then they start acting up, I think this can be pretty spooky. The classic contrast of going slow, then suddenly turning fast for one move/attack :-D

One thing I didn't show here before the actual attacks is that they can sprint towards the player if they break distance. I'd like to explore working on other forms of skeletons that is magic based instead too.
 

AbysmallyTall

Member
Oct 26, 2017
211
Annapolis, MD, USA
Regarding the game demo, it has 3 levels and 3 bosses, you have to collect every coin and defeat the boss before passing to the next level, i hope you like it (let me know if you have any errors or bugs, thanks!): http://blog.jahepi.net/game/index.html

Played the first level, here are some thoughts:
- Jump controls feel floaty, and you have some precision jumps. Not an ideal combo to my eye.
- Art styles don't always match. Background has some nice pixel art. Enemies/player have some low res cartoony stuff that isn't as nice.
- Can't latch on to ladder mid jump.
- Can stand off to the side of the float and effectively float.
- Minimal feedback for getting hit by spiders,
- Not keen on having to collect every coin before progressing. I tend to like systems where you need to collect, say 80% of the coins. That way you can miss some because collecting that last 20% can be very tedious.

Feels like a good prototype, overall. Looking forward to what you do with it long term.
 

AbysmallyTall

Member
Oct 26, 2017
211
Annapolis, MD, USA
Disappeared for a few weeks to go focus on family support stuff, but I'm back and had a reasonably productive morning. Player bullets now destroy enemies. I think next up may be a GUI library integration (eyeing IMGUI).

sSDD3pd.gif
 

correojon

Banned
Oct 26, 2017
1,410
I´m trying to make everything in the game have more than one reason to be, as well as work with other elements of the game in different ways. For these reasons I´ve added a stronger type of bongo platform:

This one can shatter walls, but it will also wake up all nearby bats, so be prepared to run! Or you can use them to help with some tricky jumps!
XZuEFGw.gif


It can also free loose blocks, which in turn can impact with enemies and disable them for a short while...Which then allows you to use the knocked out enemies to reach new heights:
byqPRUn.gif



Also I´d like to share one design principle I´ve developed and which I´ve called Triple Telegraphing. When designing a challenge the necessary information should be clearly conveyed in advance to the player. In order to to do this, we can use several techniques:
  • Distant examination: The player can safely watch the issue from a distance until he decides to take it on.
  • Building on concepts the player already knows.
  • Audio cues.
  • Coin/Collectible telegraphing: Like in Mario games when coins signal the optimum path to follow and what trajectories the jumps should follow.
  • Background elements: Like in DKC Tropical Freeze, where fruits rolling on the background signal the timing for platforms to pop up from the bottom of the screen.
  • Storytelling/setting/including the mechanic in a visual dressing that makes evident the way it works: For example, making slippery surfaces be ice blocks.
  • Camera: Use the camera to signal when or in which direction the player should be advancing/looking.
  • ...
Triple Telegraphing means that we must not stop at using a single technique for a certain challenge and instead shouls always be trying to use 2 or more different techniques. Note that this is not the same as using the same technique of the above ones in 2 different ways, like say, using 2 different background elements should only count as 1 technique and not as 2. If we aren´t able to create a 3T for a challenge, we should break that challenge into smaller ones and present them independently. This will allow us to use the second technique (building on concepts the player already knows) when we finally the present our original complete challenge.

We can see this principle in Tropical Freeze´s 5-3 level, in the fruit platform sequence (https://www.youtube.com/watch?v=91fdf7x5mvs#t=02m05s):
  • The background fruits signals the timing of the platforms.
  • The small pieces of fruits flying from the bottom of the screen signal the location where the next platform will jump from.
  • Some collectibles also hint at the platform locations.
  • Other similar challenges are built on top of the previous one, expanding the previous one every time.
  • Distant examination: The player can watch the whole sequence before actually jumping on the first platform (at least in the first challenge, not sure about the rest, but those use the first challenge to build on it so it´s OK).
  • Camera: The camera frames the challenge completely.
I´ve called this 3T for Triple Telegraphing. Where´s the missing T? That´s part of the concept itself: we should always strive to add another telegraphing technique, instead of just reaching 2 and leaving it at that.

Do you guys agree with this? What other telegraphing techniques can you think of?
 
Last edited:

Jack

Member
Oct 25, 2017
167
I've got 5 more jump transitions to make and I may just have a good base going on before I move on with all attacks and specials:
http://stuff.absinthegames.com/jumpTests.mp4

I've got a basic jump from ground and tuck to flips, running off an edge to tuck to flip and wall landing/pulling in for the hang. Still need 3 landing animations (to idle, to run and hard landing), wall bound transition to flip and double jump transition. I don't want to go too crazy with transitions as everything needs to look as responsive as it feels but I'm pretty satisfied with how it's coming along. At least from a perspective of my first time doing art and animation.
 

_Rob_

Member
Oct 26, 2017
606
Spend some time over the weekend working on Iceceratops again, I figured throwing in some scene-setting life made sense; meet Terry Dactyl!

giphy.gif
 
Last edited:
Oct 25, 2017
653
I've got 5 more jump transitions to make and I may just have a good base going on before I move on with all attacks and specials:
http://stuff.absinthegames.com/jumpTests.mp4

I've got a basic jump from ground and tuck to flips, running off an edge to tuck to flip and wall landing/pulling in for the hang. Still need 3 landing animations (to idle, to run and hard landing), wall bound transition to flip and double jump transition. I don't want to go too crazy with transitions as everything needs to look as responsive as it feels but I'm pretty satisfied with how it's coming along. At least from a perspective of my first time doing art and animation.

In my opinion, the flipping looks too much like a static sprite just being rotated. It's a bit jarring after the smooth running animation.
 

Jack

Member
Oct 25, 2017
167
In my opinion, the flipping looks too much like a static sprite just being rotated. It's a bit jarring after the smooth running animation.
Aye. I just wound up reworking my object heirarchy so I can offset and rotate sprites as needed per animation last week. But I haven't really done much on Unity's side outside of hooking up animations. The jump flip was the reason I made my sprite renderer a child for easy rotating and transform fixes hahahaha. It's on my list among a few other fixes. I haven't done anything player-side like set move/fall speeds or jump heights outside of starting numbers. I gotta see everything in first or my brain can't resolve how it needs to feel against what you see XD
 

ken_matthews

Banned
Oct 25, 2017
838
So, been working on a cat character for the past few weeks, learning a lot about rigging and animation, and I think I am getting close to bringing it into UE4 to work on game play mechanics (the fur material is temporary). I just downloaded the Hairworks SDK from Nvidia's site and am going to give that a go to see how it works in UE4.

http:///6H9c.jpg
 

Jack

Member
Oct 25, 2017
167
So, been working on a cat character for the past few weeks, learning a lot about rigging and animation, and I think I am getting close to bringing it into UE4 to work on game play mechanics (the fur material is temporary). I just downloaded the Hairworks SDK from Nvidia's site and am going to give that a go to see how it works in UE4.

http:///6H9c.jpg
Yo that cat looks good :D
 

Pooh

Member
Oct 25, 2017
8,849
The Hundred Acre Wood
Tracing an object like that is certainly possible in a pixel shader. You
basically just need to make a quad and call a pixel shader calling a ray-box
intersection test on all your boxes and a shading function if hit anything....
Edit:
But with a deferred rendering engine you can let the main engine do the
rastering solving the hidden surface problem with you taking all the
information gathered per-pixel in that G-buffer tracing just secondary rays
(shadow etc.).

Step 1: Raytracing the model! Here's what I've got.
raysjukq7.png


I'm not using a shader, I'm just raytracing the entire screen and only pulling the texture color of the coordinate I hit if it's the voxel model of the girl there in the front. It looks like a sprite! I'm not doing any bouncing to lights or anything yet though, and I'm already hitting some performance issues (as you would expect). I'm not sure how to accomplish it in a shader (I'm an idiot when it comes to shader programming) so I'm going to see if I can do it on another thread or something. And maybe look into deferred rendering in Unity.
 

missile

Member
Oct 25, 2017
112
Step 1: Raytracing the model! Here's what I've got.


I'm not using a shader, I'm just raytracing the entire screen and only pulling the texture color of the coordinate I hit if it's the voxel model of the girl there in the front. It looks like a sprite! I'm not doing any bouncing to lights or anything yet though, and I'm already hitting some performance issues (as you would expect). I'm not sure how to accomplish it in a shader (I'm an idiot when it comes to shader programming) so I'm going to see if I can do it on another thread or something. And maybe look into deferred rendering in Unity.
That's a start, mate! Nice. :D Once you start with the secondary rays you'll
never go back. ;) Performance will always be a problem, but for your special
case there are lots of improvements.

Well, I would stick with the raw raytracing method you have until you know and
understand what you are doing resp. got what you want before trying to use
any shader. The deferred approach is also worth considering for it gives you
the closed hit point much faster than any ray-tracing (but only for linear
projections and objects). However, a simple method to speed up the raw
intersection test for these boxes is to make an intersection with the whole
box instead of doing one for each of its faces. There is a method which just
checks the whole box at once for any possible intersection, and if any
computes the closed hit point (resp. ray parameter t), which is much faster
than checking against its six faces.
 

PacoChan

Member
Oct 28, 2017
71
I've been receiving quite a few emails from indieboost.io lately. I don't usually trust anything that resorts to spam to promote themselves. But they have offered marketing services to a lot of games. Has anyone used any of their services or from any other similar company? Are they worth their price? I'm starting to consider something like this for my game (marketing is not my thing), but I don't know...
 
Oct 25, 2017
6,227
Mementos
I still seem to can't work up the effort to stay concentrated in Pico-8 for more than a couple minutes. The one time I was getting it I was working with someone else. Wish I could do that again. Asking for partners online hasn't worked and now with this job I don't really have time to go and visit college campuses like I did earlier this year.
 

Pooh

Member
Oct 25, 2017
8,849
The Hundred Acre Wood
That's a start, mate! Nice. :D Once you start with the secondary rays you'll
never go back. ;) Performance will always be a problem, but for your special
case there are lots of improvements.

Well, I would stick with the raw raytracing method you have until you know and
understand what you are doing resp. got what you want before trying to use
any shader. The deferred approach is also worth considering for it gives you
the closed hit point much faster than any ray-tracing (but only for linear
projections and objects). However, a simple method to speed up the raw
intersection test for these boxes is to make an intersection with the whole
box instead of doing one for each of its faces. There is a method which just
checks the whole box at once for any possible intersection, and if any
computes the closed hit point (resp. ray parameter t), which is much faster
than checking against its six faces.

I think I'm doing it the opposite way around... if by "boxes" you mean voxels...
I'm doing raycasts from the camera into the scene, and then if it hits something I pull the color of the thing it hit, and draw it on a texture.

If by "box" you mean like... a box around the character, I'm trying to do that but not having a lot of luck. I want to only do the raytracing algorithm around the pixels on screen where the voxel girl appears, but I'm so far not really getting an accurate box of pixels for the character on the screen. I put a quad on the screen in her place (I just turned off her renderer, but the collisions are still on for the ray tracing) but the unity worldToScreen coordinates thing isn't doing what I expect.

Maybe a better explanation... I want to only do a raytrace for the areas inside the orange box below:
boxstor2.jpg


Obviously by doing that I avoid doing rays for the majority of the screen, and that would speed things up dramatically... but I'm not getting the screen coordinates for that orange box accurately.
 

Minamu

Member
Nov 18, 2017
1,900
Sweden
Hey guys, I finally managed to find a way to join the site. Good to be back!

I've been working hard making prototype environments for our new hobby project. It feels great to have a new game and genre to focus on for once :)

This time there're five members, though most are completely new to development. It'll be an uphill battle but also a very interesting challenge. We're in deep water, making a sort of procedurally generated horror game in first person perspective xD With some skill trees and rpg elements of courde because why not?
 

_Rob_

Member
Oct 26, 2017
606
I love the colors of the sky! Also jumping on giant bones is always fun. I'm getting so much nostalgia from looking at this haha.
That snowfall is really atmospheric, well done!
first time seeing this level. Loving the colours!!

Thanks! I figured as far as snow levels go, usually the palette is pretty washed out, so my goal with this one is to keep the cold feeling whilst introducing enough colour to set it apart! Speaking of which, I did a little more work on the primordial soup yesterday, including some nice gassy particles and some animated surface bubbles:

IceceratopsTerry.png

sabrina I may have been playing Spyro over the weekend...

So, been working on a cat character for the past few weeks, learning a lot about rigging and animation, and I think I am getting close to bringing it into UE4 to work on game play mechanics (the fur material is temporary). I just downloaded the Hairworks SDK from Nvidia's site and am going to give that a go to see how it works in UE4.

http:///6H9c.jpg

Ooh, this has certainly come a long way. I look forward to seeing him/her with some fur shading!
 

sabrina

Banned
Oct 25, 2017
5,174
newport beach, CA
sabrina I may have been playing Spyro over the weekend...
I knew it! I was going to say either that or Misty Island.


It's so characterful. That's the kind of thing I love doing. Like I made this crusher trap earlier today, and it could have just been a stone pillar going up and down, but I wanted to add something more to it to give it identity. Hence the ghoul.

NRMnECF.gif
 

_Rob_

Member
Oct 26, 2017
606
I knew it! I was going to say either that or Misty Island.



It's so characterful. That's the kind of thing I love doing. Like I made this crusher trap earlier today, and it could have just been a stone pillar going up and down, but I wanted to add something more to it to give it identity. Hence the ghoul.

NRMnECF.gif
Haha, you know me too well!

I'm with you on the characterful stuff. That ghoul is a perfect example, and exactly what helps a game feel unique. It could have easily been a generic asset used all over, but because you've made that extra effort it becomes elevated in my eyes. It's also definitely reminding me of this handsome fellow from MediEvil (which of course makes me love it more):
52365-MediEvil_2_(E)_(Es,It,Pt)-3.jpg
 

_Rob_

Member
Oct 26, 2017
606
Do you make all your own skyboxes, _Rob_ ?

Mostly, yes. They're also usually a combination of a cubemap (made in GIMP/3DS max) and then some 3D assets off-scene. I have a separate camera for the sky objects, that renders behind the main camera. This means I can have things like moving clouds, or more level specific things like a flying Chinese dragon in the Hare Today, Gong Tomorrow level.

Also, is it just me or has Era broken the GIF link in my original post?
 
Oct 25, 2017
653
Mostly, yes. They're also usually a combination of a cubemap (made in GIMP/3DS max) and then some 3D assets off-scene. I have a separate camera for the sky objects, that renders behind the main camera. This means I can have things like moving clouds, or more level specific things like a flying Chinese dragon in the Hare Today, Gong Tomorrow level.

Also, is it just me or has Era broken the GIF link in my original post?
Cool. No, the gif still works for me
 

missile

Member
Oct 25, 2017
112
Hey guys, I finally managed to find a way to join the site. Good to be back!

I've been working hard making prototype environments for our new hobby project. It feels great to have a new game and genre to focus on for once :)

This time there're five members, though most are completely new to development. It'll be an uphill battle but also a very interesting challenge. We're in deep water, making a sort of procedurally generated horror game in first person perspective xD With some skill trees and rpg elements of courde because why not?
Hi Minamu, good to have you back! :) And good luck with these guys!


Thanks! I figured as far as snow levels go, usually the palette is pretty washed out, so my goal with this one is to keep the cold feeling whilst introducing enough colour to set it apart! Speaking of which, I did a little more work on the primordial soup yesterday, including some nice gassy particles and some animated surface bubbles:
IceceratopsTerry.png

...
So nice. What will be the playtime of the game?



Pleasing to watch. I always have stop looking. Ha! xD


... if by "boxes" you mean voxels... ...
Yeah I mean voxels when I say boxes. Box is a more common term in
raytracing parlance, but will use voxels if it fits you better.

I think I'm doing it the opposite way around ... I'm doing raycasts from the camera into the scene, and then if it hits something I pull the color of the thing it hit, and draw it on a texture. ...
Which is the same as I've described, but more expensive if your voxels are
made out of triangles. What I meant was for speeding up the ray-voxel
intersection test. Guess your voxels consist of 12 triangles (6 quads having
2 triangles each). To compute the intersection with such a voxel you would
need to intersect the ray with 12 planes spanned by each triangle and make a
check whether the intersection point actually lies within the triangle. This
is something you have to do for all voxels and for each pixel. However you
could compute the extend of each voxel and check the whole voxel at once as
I've described before (I have some old code laying on my HDD which does this,
but it's based on axis-aligned boxes, so you would have to transform the ray
into a box-aligned coordinate system when you want to have arbitrary orientation).

... If by "box" you mean like... a box around the character, I'm trying to do that but not having a lot of luck. I want to only do the raytracing algorithm around the pixels on screen where the voxel girl appears, but I'm so far not really getting an accurate box of pixels for the character on the screen. I put a quad on the screen in her place (I just turned off her renderer, but the collisions are still on for the ray tracing) but the unity worldToScreen coordinates thing isn't doing what I expect.

Maybe a better explanation... I want to only do a raytrace for the areas inside the orange box below:

boxstor2.jpg

Obviously by doing that I avoid doing rays for the majority of the screen, and that would speed things up dramatically... but I'm not getting the screen coordinates for that orange box accurately.
Put a bounding box around your voxel character and let Unity project it onto
the screen. The maximum extent of this projected bounding box will be your
window to shoot the ray towards.
 

_Rob_

Member
Oct 26, 2017
606
So nice. What will be the playtime of the game?
Thanks man! Hmnn, interesting question. Each level should take 20-30 mins to fully complete for a skilled player, there are 10 levels plus bosses and cutscenes so give or take 7 or 8 hours? It depends on skill level and how much of a completionist the player will be. Come to think of it, it'll also depend highly on how many Watches/Stones I settle on for gating progress; that'll come down to play-testing I reckon.
 

K Monkey

Member
Oct 25, 2017
278
So, been working on a cat character for the past few weeks, learning a lot about rigging and animation, and I think I am getting close to bringing it into UE4 to work on game play mechanics (the fur material is temporary). I just downloaded the Hairworks SDK from Nvidia's site and am going to give that a go to see how it works in UE4.

http:///6H9c.jpg

if you can manage to get the movement down, this will look quite good

I also wrapped up the Portals in my game

 
Last edited:

ken_matthews

Banned
Oct 25, 2017
838
Yo that cat looks good :D

Ooh, this has certainly come a long way. I look forward to seeing him/her with some fur shading!

if you can manage to get the movement down, this will look quite good

Thanks guys! K Monkey, yeah I think that is going to be a challenge. The goal is to have a realistic cat character where you do a lot of the things a cat would do in real life (plus some not so real life stuff). I've been watching a lot of cat videos lately, and they move as though they are elastic bags of fur that can contort in all sorts of crazy ways.
 

OllyOllyBennett

BizDev & PR at Cardboard Sword
Verified
Nov 10, 2017
40
North East, UK
Hi all. I'm working on a game called The Siege and the Sandfox, partnered with Chucklefish. It's a 2D 'stealthvania' built in Unreal Engine 4.

We've been doing a bunch of dev blogs, dev streams, and conference talks. If you would like to see any of these, you can find them on the Chucklefish forum. We did a stream with Epic for their community led training series on 'Getting Started with Paper2D'. So if you are thinking of starting a 2D game, do consider Unreal, and hopefully this will help some of you getting started:

 

jahasaja

Banned
Oct 26, 2017
793
Sweden
I´m trying to make everything in the game have more than one reason to be, as well as work with other elements of the game in different ways. For these reasons I´ve added a stronger type of bongo platform:

This one can shatter walls, but it will also wake up all nearby bats, so be prepared to run! Or you can use them to help with some tricky jumps!
XZuEFGw.gif


It can also free loose blocks, which in turn can impact with enemies and disable them for a short while...Which then allows you to use the knocked out enemies to reach new heights:
byqPRUn.gif



Also I´d like to share one design principle I´ve developed and which I´ve called Triple Telegraphing. When designing a challenge the necessary information should be clearly conveyed in advance to the player. In order to to do this, we can use several techniques:
  • Distant examination: The player can safely watch the issue from a distance until he decides to take it on.
  • Building on concepts the player already knows.
  • Audio cues.
  • Coin/Collectible telegraphing: Like in Mario games when coins signal the optimum path to follow and what trajectories the jumps should follow.
  • Background elements: Like in DKC Tropical Freeze, where fruits rolling on the background signal the timing for platforms to pop up from the bottom of the screen.
  • Storytelling/setting/including the mechanic in a visual dressing that makes evident the way it works: For example, making slippery surfaces be ice blocks.
  • Camera: Use the camera to signal when or in which direction the player should be advancing/looking.
  • ...
Triple Telegraphing means that we must not stop at using a single technique for a certain challenge and instead shouls always be trying to use 2 or more different techniques. Note that this is not the same as using the same technique of the above ones in 2 different ways, like say, using 2 different background elements should only count as 1 technique and not as 2. If we aren´t able to create a 3T for a challenge, we should break that challenge into smaller ones and present them independently. This will allow us to use the second technique (building on concepts the player already knows) when we finally the present our original complete challenge.

We can see this principle in Tropical Freeze´s 5-3 level, in the fruit platform sequence (https://www.youtube.com/watch?v=91fdf7x5mvs#t=02m05s):
  • The background fruits signals the timing of the platforms.
  • The small pieces of fruits flying from the bottom of the screen signal the location where the next platform will jump from.
  • Some collectibles also hint at the platform locations.
  • Other similar challenges are built on top of the previous one, expanding the previous one every time.
  • Distant examination: The player can watch the whole sequence before actually jumping on the first platform (at least in the first challenge, not sure about the rest, but those use the first challenge to build on it so it´s OK).
  • Camera: The camera frames the challenge completely.
I´ve called this 3T for Triple Telegraphing. Where´s the missing T? That´s part of the concept itself: we should always strive to add another telegraphing technique, instead of just reaching 2 and leaving it at that.

Do you guys agree with this? What other telegraphing techniques can you think of?

Really interesting to read your ideas about telegraphing. I also plan to try as much as possible to remove all cheap deaths.

It is hard tough, I do not like telegraphing that take the player out of the experience. For example, in the new Batman games you should dodge when you see a blue thing ( I forgot how it looked) over an enemy. This lead to me not looking carefully at the enemies movements but instead just looking over the enemies waiting for the blue thing to appear.

Your examples sounded really good though and seem not to remove the player from the experience.
 

Pooh

Member
Oct 25, 2017
8,849
The Hundred Acre Wood
missile you are the best :D Wanted to start with that.

Yeah I mean voxels when I say boxes. Box is a more common term in
raytracing parlance, but will use voxels if it fits you better.
Thanks XD I'm not actually that familiar with raytracing so I was getting a little confused.

Which is the same as I've described, but more expensive if your voxels are
made out of triangles. What I meant was for speeding up the ray-voxel
intersection test. Guess your voxels consist of 12 triangles (6 quads having
2 triangles each). To compute the intersection with such a voxel you would
need to intersect the ray with 12 planes spanned by each triangle and make a
check whether the intersection point actually lies within the triangle. This
is something you have to do for all voxels and for each pixel. However you
could compute the extend of each voxel and check the whole voxel at once as
I've described before (I have some old code laying on my HDD which does this,
but it's based on axis-aligned boxes, so you would have to transform the ray
into a box-aligned coordinate system when you want to have arbitrary orientation).

OK, so let me see if I have this straight.

The way I am doing it right now is that I am basically going 1 pixel at a time in screen coordinates (I'm actually only rendering 1/10 of them, but I digress), shooting a ray, and then if I hit something, I'm getting the material of the object, then the UV coordinate of the point on the texture that I hit and then drawing that color to final texture.

Your suggestions is just to shoot one ray at each voxel, then draw a pixel as big as the extent of the voxel? Or am I just not shooting any MORE rays through the extents of that voxel? (...or why am I needing the extents?)

I definitely see how that would be significantly faster. The only issue is that the importer I'm using for my voxel models is outputting them as optimized meshes (based on lowest polys, or lowest texture usage). I'll have to see if the importer is maintaining the voxel data itself and if I can use that directly?

I guess another question is, if I have the voxel coordinate data, would it be faster to just draw a ray from each voxel to all light sources, and if hits something before a light then darken the output color of the voxel? And bypass the whole first step of drawing a ray to the voxel model from the screen in the first place? I guess this would be like doing minecraft lighting on the voxel, and I'm not sure if that would be faster or slower than the raytracing method?

Put a bounding box around your voxel character and let Unity project it onto
the screen. The maximum extent of this projected bounding box will be your
window to shoot the ray towards.
I have to figure out how to do this :D
What I did yesterday was put that quad in the character's spot and rotated it to face the camera while drawing on it the raytraced texture, but the "worldtoscreen" coordinates were all over the place. I have to look at how to project the bounding box onto the screen... hmmm....
 
Status
Not open for further replies.