#Saurian Sorcery
1 messages ยท Page 3 of 1
ooooo ty
i really should consider (past or present) trying to simplify my models a bit more
it's easier to make the rest of everything when matching the fidelity that way
though my first thought is that game relies a lot more on lighting than i wish to
this still needs some work but its a fun start
cool stuff!
is your pipeline forward? have you considered just throwing msaa on it?
its deferred
daww
i should try to implement fsr2 at some point, yeah?
https://sketchfab.com/3d-models/rafaj-the-mulberry-warlock-13fd93cd06164e4c892478e57306a24c
i found this model online
and the idea of it actually fit generally really well
so i downloaded it and tried to clean it up
actually turned out pretty well
part of it is causing me to look back at some of those tweets
as i understand, mr. stalberg has some method of determining outline sensitivity
so for his grass texture, it outputs a low sensitivity, and the rock outputs a high sensitivity
grass on grass = few outlines, on rock = more outlines
i have this issue here where it's missing some outlines that i'd want, like on the back sides of this band
but if i set the depth outline to anything that'd actually show those, it'd be way too sensitive, so i almost want to force outlines sometimes
doing outlines on material borders could help here, but i think i'd need to verify that it wouldn't fuck me over in other places
tails
o_o
are u pointing out the sonic similarities
that's the first thing my friend said too if so ๐ญ
i got sent this
whatever bro if somehow this does actually end up being a game
i can grift to the sonic furry crowd

Huge market potential tho
https://sketchfab.com/3d-models/week-2-salamander-458daf7c543a4cb7bf430b7063ab3d9b
man this is from the same guy, its beautiful
i really need to figure out how to do animation like this with my system, to make it more jolty
much more lizardlike than the two pose smoothstep interpolation that i'm doing, but idk how practical it is
couldn't they just be using a very small time delta between the two poses
hmm actually idk, I think you're right
no the way that you can tell is because the tail isn't bound by it
that, my system cannot do
if i wanted to support it, i'd have to support keyframes. supporting keyframes is very hard from an editor standpoint
if i had it, i could just set the two for the animation cycle for the tail, then like 4-5 for the head like this is probably using
per-joint keyframes?
yeah
it wouldn't be the hardest thing ever, like i can imagine most of it which is a good sign, but still a minefield of timesinks
just try it, what's the worst that can happen? ||
||
the reason why i'm set for now on not is because i really want to actually make some amount of content, and this isn't stopping me from doing
i've always sucked dick at making content
i always make shit that gets me to the point of making content
and i make a single thing with it, and i'm like yes, okay this works, and then usually i move on
ye
it's not intentional though and i'm trying not to do that anymore
you could make the whole game without animations frfr
though it adds to the feel and theme (like audio), so it has some importance
hehe wdym completely stiff statues feel fake
and i just stopped placing him essentially because of that
i have the intent to modify him a bit, or at the least give him gear though
๐ค what you system does instead?
i have a library of poses, and a pose-mode widget to set them
but poses set every single bone indiscriminately
so you have a keyframe system, but one keyframe has to contain all transforms for whole skeleton?
for sure
otherwise I don't see a problem
you are probably missing one most useful thing in animation workflow
it's the inverse kinematics
i don't think so, but i've only speculated about how IK works
make an IK rig and animating becomes easier mutiple times over
oh
in that sense yes
i was gonna do IK at some point, but i was expecting it to work by applying some transformation after posing
so set pose, then apply IK and ideally IK applies minimal enough change to keep the pose in tact
but from that sense, i should probably try to do it soon
so i don't waste time doing all of this by hand
IK applies maximal change within constraints
the goal is to reach some point in space and you have to solve a chain of parented transforms with joint constraints and IK solves this problem
isn't it minimal change? i'm not sure i understand otherwise
minimal change to reach the point in space
I actually don't understand what you mean by minimal change so I probably misunderstood you
yeah i'm using it in not a math sense, i just mean that it won't completely destroy the pose
like if a pose is set, then a reasonable IK is set (like setting foot position), it'll still keep the leg pose
there's no guarantee the change will be minimal, it's just that there are multiple solutions and IK solvers are sensitive to initial state
so solution ends up resembling initial state
one thing i'm curious on, that you might know, is it usually required to make joints and joint constraints to get decent IK?
yeah that sounds right
well those constraints describe the system so I guess if you don't want solver to simply stretch the arm to reach the point you need to constrain it
I can easily see FABRIK doing this without any constraints
i'm looking for ease of use at the cost of quality, sounds like FABRIK is what i want from looking at it
ye fabrik is easy, transform forward, constrain, transform backward, constrain
do N iterations until it looks good
simple variant for length constraint
Random thing someone linked on another server
https://gfx.cs.princeton.edu/pubs/DeCarlo_2003_SCF/DeCarlo2003.pdf
was hoping i could get this working before the weekend was over, but only a resemblance
weekend was taken by touching grass ๐ฉ
yeah
tilesets
this is the input, can add models and select which corners are inside, which corners are outside
basically i dont want to model levels, so i can either make them procedurally or just very quickly in-editor
this is why i wanted to do it
ah I 'member
fixed it during my lunch break, the missing sections are just because i didn't add something that can fill that space yet
did the fix fit in your lunch break or did your lunch break expand until the fix was found
uhhh i don't want to do anything until this PR gets looked at lmao
so i found something to do 
not a big fan of this tileset but
lotta functionality at least
i wanna add tiles that span multiple squares
fun fact, this codebase is at just under 18k lines currently
๐ฅด
i think i want to grid-ify the enemy movement a bit more but im not sure how
:^)
i sorta want to do a frog with a big sledgehammer
that very obviously stretches his limbs
like he basically just throws it with elastic arms
dat frog looks like a turtois
yeah he found a tortoise's shell and made it his new home
battle shovel
mannnnn
i should really download like unreal or godot or something and play around with animation players
see what the graphs do and what functionality is needed from them and for them
but god does that sound boring
what graphs?
state graphs
you usually have a timeline with keyframes that's about it
that's just for single animations
what's multiple animations?
but for example if i want to add an attack sequence
an animation is an interval on global timeline
i don't want to define that in code
or you can think of it as individual timelines, it's equivalent
animation assets aren't the problem, choosing which animations to use is the problem
but that is gameplay programming
i am doing gameplay programming
yuuppp i gotta figure out what functionality i need to replace that
I am personally unfamiliar but know of those from random youtube videos
same, i always avoided 3d when i used the game engines
well those are just programming patterns made into GUI
so that an artist may fiddle with them using buttons and knobs instead of typing text
there are at least two animation related features that are somewhat essential - IK and animation blending
animation blending is basically bone influence weight mask and weighted average between TRS with it
what IK is you already know
it's usually stabilizing refinement step after blending
but is also useful in animating by hand
really nice!
much more happy with the appearance of this tielset ๐
the blender file for this btw
at 5 seconds it looks kinda like a hot dog
holy fk its the hotdog tileset
frfr
the way this works is that there are 8 corners, and each corner has a value (here, the red stone is 1, and the sandy value is 2), then when it's time to build the code just iterates through and rotates around to check for viable candidates and selects one at random
i'm reworking this slightly, there's sometimes cases where tiles can represent multiple corner values, for example in this case
four of the corners are clearly representing sand, and the corners closest to the camera are clearly open air, but the back two corners could represent anything solid
so i'm changing the corners from being values to being bitmasks, (then checking that two are equal is just corner_bits & other.corner_bits != 0 for each corner) but there's an interesting side effect of this where the "empty" value has to become a bit as well
that took me a minute to come to ๐
also, if i do this in the future, i should really find some sort of way to automate generating all of the relevant cases, there are a lot
like at least 100
this is finally enough coverage to make the maps i drew out over christmas break
๐ฅด
thing, I don't know why
huh?
i hate thes eshadows
i think i've never seen shadows look this bad because i usually blur them
and slight shadow acne doesnt look bad if it's blurred, just looks like overattenuated light from the angle
the bottom part is it escaping the frustrum i believe, so ignore that part
god this looks so much better with a background
made the FPS local so my PC no longer gets tanked when i draw a block, also allowed vertical flip to cover more cases (though my tileset isnt' designed with that in mind)
thats p cool looking
added 3d pathfinding
a star?
yeah
a star that's using a star?
can't tell if punning with the target or actually asking a question LMAO
punning
Make a star and do a star on it
first one was legit question
yeah its just astar with some funky stuff for ramps adding vertical neighbors
though it doesn't seem to quite be bugless :^)
bugles ๐ฏ
trumpet
sorry I could only find the curved trumpet emoji
foiled once again by not using enum class
curses
also foiled by not fuckin making this constructor explicit, dont know how this escaped for this long
i wish constructors were explicit by default >w<
oh wtf it was literally only my 3d vector class that didn't have explicit for that
well, s'all fixed, outside of the asymmetrical ramp usage which i don't really care about atm
i sorta wanna do funky stuff like this for foliage
not entirely, but at least some alien elements
Looks like a thingy
actually crazy that you can pick up on the resemblence
that's literally exactly what i was making
it reminded me of this thingy I made in blender
how'd you make that thingy?
i made my thingy with the skin modifier, tried deleting edges with geometry nodes at first but it had bad results so i just did it by hand
uh I think I used a wireframe modifier, then applied some other modifiers
the wireframe made it look like the red one in the center
I'm a big blender noob so I can't fully recall what I did besides mess around until I saw something interesting
issa thingy
you figured out my blender secrets
with these two simple tricks
there's also some disabled by default addon that I can't remember the name of which allows you to replace each polygon with a mesh
so you can easily model fences and stuff
geometry nodes exists now which you can use
I guess so
i still think they're incomplete but they feel pretty useful now
this actually gives similar quality results for a lot less effort lmao
also there are more fun things to do with it
cleaned up version of a 3d model i found
now that i fixed the shadow acne, the pixel flickering, a lot of the shadow issues, and added a non-black background, things are so much nicer to look at
who would've guessed
I quite like the art style :)
ty
is coming together a little bit
when i have some time im hoping to get characters moving around again, which will be neat because this is the first time the environment feels real
money making
gameplay ๐
still a ways to go until i have a testable level (i want to add some sort of attack to the fruits, hence the lizard health bar), but for sure ๐
What is this, someone making a usable product instead of unfinished engine after engine
Heresy
like a ๐น, or a ๐ (I couldn't find a bowtie emoji)?
๐น
a bowtie would look cool too
what is Guy's last name going to be
he doesn't even have a first name yet lmao
mr. hanther
running dnd campaigns has given me the cursed ability to pull absolutely random names out of a hat
lol do your players like to ask random NPCs for their name
i think it happens almost every time
my brother is running a campaign right now and he called two goblins we encountered Boblin and Noblin
those were prepared names

i liked my series of goblin names that used no vowels
my particular favorite was "n'd" because my players thought i choked when i said his name the first time
based & nased
also i had pattern recognition going in my brain for the hands but could not remember what the image was
this was it lmao
glad that i was not the only one seeing it 
us players did CBT to some poor ogres in our last session 
it was pretty epic when I rolled a crit though
does this mean he fucking dies or does it mean he turns into a ogre with degenerate pleasures
yeah
can you unwrap a mesh without having to apply the subdivision modifier?
in blender
I don't know never tried
yeah subdivision doesnt really hurt uvs
btw sucks that blender has no material painting
so you have to paint one pbr texture at a time
but i applied in this case regardless to fix up some verts, do the armor, and do mats
im not familiar
they really should upgrade texture painting
if they implement material painting then substance painter may lose a big chunk of people
what I mean is basically configure a brush that paints to multiple textures simultaneously
so you can paint whole materials
im one of the few people on earth thats used substance designer for over 100 hours but never opened painter
and yeah gotcha
i also wish you could bake textures as part of the export process without doing anything custom
that way procedural texturing in general worked better
with or without? ๐
save the horns for the upgraded version
lmao it would work well for that
1,2,3
dont think i'm doing unit upgrades though
then decide whether to give it horns based on how badass you want it to be
it's interesting how neutral it seems to be
i asked 2 other people and neither of them decided either
they aren't very prominent
they both look good so ultimately it's up to wherever fits the game imo
make them rainbow-colored
if they would be more central to the design, then maybe they would be more impactful
but i like it without
maybe a ram character with horns?
yeah i think im going without, other designs can get horns and this boy is kinda slick
btw i like the name saurian sorcery ๐ though idk how many people know what saurian means
someone give a take on it
Saurian Sorcery (Tower Defense Game)
been updating my skinning system a bit
i only supported basically 1 instance of skinned models, so if i wanted to have more than one of a type of lizard it wasn't possible
went from having a SkeletonCPU struct and a SkeletonGPUstruct, which is how most of my objects work that have some interface to the renderer
to now a SkeletonPrefab in addition to those two, which is what i usually have for gameplay side objects, which contain information for building entities
which kind of breaks the pattern and incentivizes me updating some other asset structs around it, but the reaosning is that i only keep one SkeletonPrefab around, which holds the poses
so TypePrefab structs are generally immutable, serializable asset data, TypeCPU structs are instances of Prefabs which runtime (update functions) needs, and TypeGPU structs hold handles to the GPU data
i think this makes sense?
also in some cases, TypeGPU represents data which is trivially uploadable to the GPU, but it works for me because in this case, binding handles is similar enough to uploading trivial data
once i finish cleaning this up, i'm going to import poses from blender/gltf
main reasoning is so that i don't lose data in the future, but also so i can take advantage of blender features, like not needing to implement fully featured IK with constaints and everything, being able to pose before i go through the export process, etc.
oh also lastly, i'm being explicit with my animations, constructing a list of states and i'm going to explore what the pose controller system will be able to do within those states (for example, is an ability where a lizard charges and swings considered one state?)
no fuckin clue yet
I haven't done animation yet so I dunno, but I'm still watching ๐
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
i shouldn't have done this all in a day, i'm going insane
just had a memory of adding in temporary code somewhere
and now i can't remember where

poses in blender on the keyframes, i import the .gltf to engine here and convert the 3 poses to an idle sequence
so the takeaway is that using poses to animate leads to messy workflows
abnormal yes, neither gltf or blender are set up to handle this sort of animation, that friction is certainly real
messy (or do i regret it), idk, try and find some other projects where one guy NIH's a 3d engine like this
animation is hard
what do you mean neithyer gltf nor blender are set up to handle this sort of animation
they have no concept of a "pose" beyond having the ability to express them
i think i could've automatically imported these pose sequences as animations, but i don't know if that would be good
name a few pros of using poses to animate
it should be clear why there's no such system anywhere
they mostly come down to being simple,
from ux: you can interpolate between any two at any point and it generally gives decent results
from engine: easier to set up the tools to manage them
ok but those points are not unique to the system
because very few people try to make their own engine where they also make their own characters and animate them all in 3d
the keyframe system is generalized form of the pose system
yeap
if i made anyone else use my code i'd certainly try to generalize it
but you're not going to be able to implement keyframe animation from the starting point of hardly understanding gltf and having a horribly hacked version of it in your engine in a day
anyways I don't want to keep this conversation going it feels like I'm attacking you for no reason
nah i like defending things
i mean it's certainly true that i might be in the category where given all knowledge, it would be best to just suck it up and do full keyframe animation rather than spending time managing the constraints
but i went into animation as a whole with almost no knowledge on any of it beyond general graphics programming
my primary concern is that you're probably wasting resources by sticking to it
and given the question of "should i switch now", the answer is probably not
eventually it's gonna have to go because it scales poorly
there is also a problem of usability that you have to pose every single bone for every single pose
and you cannot change two poses to interpolate between them if there are a few more pose frames in between
so the question is less
are there drawbacks to this
and more, is there something better
if it's just dropping the pose (all keyframes) limitation
the animation section of game engine architecture was so long that I skipped most of it ๐ฅฒ
then what do i get out of that? because i can't animate like real games
infeasible with how much time real games spend on animation, both authoring and programming sides of it
ngl the fact that you have your own animated assets that actually look good is quite epic
yeah i coulda had star game jaker
in code I think it's pretty few locs
this is what u did for saying "le lizard and fruit looks so cute xdd"
ebin :DDDD
struct Skeleton
{
std::vector<Bone> bones;
std::vector<Animation> animations;
//compute a set of bone transforms using animation index and time
void ComputePoseTransforms(Transform* pose, size_t anim_idx, float time);
//turn a set of bone transforms into a set of matrices used for rendering
void ComputePoseMatrices(glm::mat4* matrices, const Transform* pose);
//apply inverse bind transforms to finalize the process
void ApplyInverseBindTransforms(glm::mat4* matrices);
float GetAnimationDuration(size_t anim_idx);
};
the thing that implements the bare bones
it's all UX
the book goes deep into the various ways of representing animations with lots of code ex๐ฆles
what part of ux
there should be basically no difference between most of the ux for both systems
and you also can leave the animation process itself to 3rd party tools
at least for the keyframe based one
80% of it is "how do i author content", making sure that it's possible to edit it and use it
if it's, make a flail animation in blender, make an idle animation in blender, set idle state, on falling, blend to flail state
- what does blending to the flail state look like
- is it literally just a question of quality then? because the animations in blender are going to be made with 2 poses, and adjusted with additional keyframes to correct problematic areas
shrimple idle/flail animation (ignore the attacks)
- if you look carefully at the code I posted, the keyframe based system always computes a pose from keyframes and then turns them into set of matrices for rendering, so you should be able to interpolate between two arbitrary animations by interpolating the transforms of two poses obtained from them, before turning the final interpolated pose into matrices
2.idk you animate bones lol
there will simply be less bones to move around because you can place a keyframe anywhere on the timeline
- now we have multiple animations playing at once
either way, it's not so much that i think it's better, but switching systems requires a reason for me, possibly some knowledge of an impassible obstacle, which is more a question of looking at a large set of animations i'll need for this game and considering it between these two systems (which i'm going to do now)
unlike the traditional GP way, i am practicing programming in service of an actual product, rather than engine dev purity, so i have to consciously ignore seeking improvement if it doesn't serve the bottom line
I wouldn't say that you have to play multiple animations at once
you may obtain 2 poses, one is the end of source animation and the other is the beginning of the destination animation, and interpolate between these for some given transition time
so it's same as playing just one
interpolating between 2 playing animations would probably look better though
again the keyframe system is the generalized pose system
so what one can do the other can as well
yeah, but the restrictions of the pose system allow you to skip the first key frame of the second animation and replace it with your start pose
because the second key frame of the second animation is all synced, the interpolation is even across properties
more so, you just use that transition logic for everything
I don't get it
if it's a question of "how do i get a good idle animation into my game", it's doghsit, there's no point
if it's a question of "how do i convert an animation system's state machine into poses", it's a lot better
because the second key frame of the second animation is all synced, the interpolation is even across properties
you don't have this guarantee
you can do this if you copypaste the pose in the editor
but I don't see how it's mandatory
the interpolation will always smoothly transition between any pose
if you're just saying you can artifically apply that limitation to yourself
is that what you're saying actually
maybe
ok
I don't understand the purpose of it
anyways how about we wrap this up, I need to go
if you have anything to add, I'll read it later
if you blend anim 1 and anim 2 (i miswrote)
and you cut out d for the interpolation step, then c-e will be a quick interpolation, c-f will be a medium interpolation, and c-g for the third track will be a slow interpolation
i.e. random parts of your animation will still be showing the old animation while other parts will switch to the new animation very quickly
but if b,e,f don't exist, the interpolation between c and g will be even across all tracks
either way, if you treat all animation as transition between two states (where cycling is a case where the end state is equal to the start state), then you need to animate all state transitions
you can do this trivially by blending between these two states
and you can make the system more robust by allowing more keyframes
but because there's a lot of state transitions, that's a lot of keyframes if you want to have really good animation. if you don't need really good animation, you can skip programming this step and just rely on the simple blend
it should be clear why there's no such system anywhere
either way, this isn't my idea, its from overgrowth https://www.youtube.com/watch?v=LNidsMesxSE, not necessarily suggesting you watch it, only that it's available if you have the desire yourself ๐
In this 2014 GDC session, indie developer David Rosen explains how to use simple procedural techniques to achieve interactive and fluid animations using very few key frames, with examples from indie games like Overgrowth, Receiver and Black Shades.
GDC talks cover a range of developmental topics including game design, programming, audio, visual...
fun convo tho, i appreciate the interest
I think there's a misunderstanding somewhere
in keyframe based system the whole timeline is a continuous set of poses, and so it is with pose based system
due to interpolation being in place
so you could take any pair of time t0 and t1 and sample a pose and interpolate between them
a pose is nothing but a set of TRS per bone
are you just saying that you can add additional keyframes at e for track 2 and 3?
track?
in this example, track meaning the horizontal line that corresponds to some animated property
I am saying that timeline is a continuous curve and each keyframe is a control point
you can sample a pose using time
this fact is true for both systems
you add redundant control points which is a flaw in my eyes
see here: i do not care about engine dev purity
i do not care about flaws unless they are impacting my progress tangibly on the actual product i'm working on
that's a bit of a lie
i do care, but i don't like caring and so i am consciously trying to not care
how do I stop being passive aggressive
i believe this is where you have to make a bit of a stretch to empathize with my goals
I was trying to make a sentence but it always comes off as getting personal wtf
LOL
man you should see my conversations with my and my lead
he's a dry swedish man and so all of our conversations would come across as an argument between two people who hate each other
well
basically to put it bluntly I'm not trying to persuade you in any way
because I can see that there's a certain degree of sunk cost fallacy at play
finish the product then maybe consider it again
I wanted to bring up that the workflow could become suboptimal because of how many things you need to tweak per pose, and it grows with each individual pose added to the animation
as amount of bones times amount of poses
it works for overgrowth well because they rely on the procedural generation a lot
hm, you know this is how i'm adding poses, right?
it simulates forces and does IK
yeah but then when you need to edit it you need to propagate the changes manually
across all poses inbetween
say you need to edit something in first pose and last pose
now you need to edit all of them
i modified the tail on the first pose in that second video
where the first pose maps to one of two poses by my idle animation from my engine skeleton data
okay but does it apply to all of the poses?
no, but thats definitely not desirable
if the change is in first pose of the animation and last pose of the animation you're going to have to edit the poses inbetween them
there are only two poses per animation
low quality
that should settle the debate
sort of, maybe you're more convinced than i am now xD but yeah
it's a little funny because like
right now, looking forward, there's a shit ton of work, so really it'd be sub-par for me to spend more than this weekend on this animation problem
i can totally imagine a future where i finish a bunch of things though, and i look again at the animations
that's the sunk cost fallacy part I was talking about
and they dont' meet my standard
but i can't really focus on that future, if i'm in that future, i'm succeeding
it's reasonable in your case though since you seem to be time constrained
yeah i don't really work on this on weekdays unfortunately
and i don't want to bring anyone else on because i'm not trying to make money from it
so they're incredible time constraints xD
made another guy this morning
spiffy lookin fella
i like his little sash, but it also kind of looks like he draped orange toilet paper upon himself
do not lick the orange toilet paper 
Looks like a wise monk
yeah i can't decide if i want to lean into it
thinking about what object he should hold
considered a floaty water orb
scroll?
Monks use quarterstaffs ofc
four quarterstaves
A khakkhara (Sanskrit: khakkhara; Tibetan: เฝ เฝเฝขเผเฝเฝฆเฝฒเฝฃ, THL: khar sil; Chinese: ้ซๆ; pinyin: xฤซzhร ng; Japanese pronunciation: shakujล; Korean: ์์ฅ; romaja: seokjang; "tin stick", sometimes referred to in English as a pewter staff, is a staff topped with metal rings traditionally carried by Buddhist monks, particularly in East Asian Buddhism.Original...
both
tin stick
that's actually a really nice design though
the one thing that i've been considering more recently compared to when i started
is thinking about the casting/attack animations before i settle on any character design
Obviously the main thing you're missing are lusty argonian maids
like here, it's not exactly easy to figure out how a lizard that holds a pot should actually attack
a lot of mage characters in games have attack animations that essentially just look like they're throwing a baseball
maybe i just make every character with a staff swing it xD
swinger characters, hmm
considering yoinking the blurred normals from teardown
@main cosmos i'm assuming there's some depth discontinuity rejection on the sampling for that, any details?
it only blurs normals that are near the camera, for one
it probably does a depth discontinuity check too, though I can't remember for shure
if you have teardown you can just renderdock it urself
mayhaps
it's a little tricky to run under renderdoc, but I can help if u get stuck
you have to use the global hook instead of the normal way
if i'm feeling adventurous one day ๐ or really need some details
i think it's fairly simple, especially since i don't need perfect performance
it scaling on distance to camera is probably the only other detail
yeah, it ain't very clamplicated
i sort of do the opposite rn
instead of blurring normals, i outline them 
so hard edges like this are black instead of smooth
since u have a non-voxel game, can't you just explicitly model the bevel
voxels are certainly the best case for blurred normals, i don't think it would be as good in my case
effort
lel
bevels aren't just a modifier
there's a lot of topo maintenance that you have to do on them
I think outlines might look better for your game anyways
guess it's not too hard to whip up a normal blurring shader to see
I can confirm that teardown has a check to avoid blurring normals over depth discontinuities
the whole shader is basically 25 loc
ah shit
just realized that i'm probably going to have to have some extra shit on skeletons to use for gameplay far in the future
obviously its a bit of a dream to have to never edit skeletons
but knowing kills the dream ๐ฅฒ
reimporting skeletons is very scary
i too am afraid of skeletons
๐
i need more indicators to show what's actually happening here
he's set up rn to attack in a diamond shape around him, and hits in a 3x3 area
didn't know those apples were 3D models
I thought they were 2D sprites lol
I think that speaks for the aesthetic of your game
A collection of lowpoly scanned fruits and vegetables, ready to use in game engines, as particles or for optimized renders. Comes with a demo!
Each model is made of ~1000 triangles, and 1024px albedo and normal maps (jpg).
Original scans from @fredfroehlich @seijik42 @linkfredriksson @yonemoto.taiga @xfanta @BSlegt @tux @parallelo.d @daniel132...
spot em ;)
i actually have other spawners set up, i just haven't added the button to instance them yet lmao
which takes like 2 sec, 1 sec
banana rot mechanic
my model loading is on god fucked
๐
asset loading returns a reference now and modern memory management got me fucked up ๐
nvm? am i an idiot? apparently clearing my entity registry is somehow deleting a model? 
ya im dumb
but also
i fucking hate templates, more specifically the error messages that they produce
one of the only things about c++ that legitimately bothers me
having to comb through 60 line, 1500 character error messages makes me feel like i'm living in the middle ages
like this being the simplified version
naw, fuck off
it will look worse, but actually point at your loc that caused it
yeah, i usually just scan over both for a file, then for a line number if it's there
don't even bother trying to read it
my asset editor sucks
not really but the memory management of it sucks
pov: engine dev, you want to click a button you haven't used in a while
surely i wouldn't spend 90 minutes debugging something and making no progress
right
nvm false alarm i'm continuing being an idiot, but the 90 minutes did actually fix things
ok this only took like 30 seconds of actual asset editing
Saurian Sorcery
gameplay thought, fruits move too fast right now to attack them, but slower feels weird. i thought about having some sort of breakable obstacle that would spawn slowly in sequence from the thing that you're defending
basically like minions in league of legends, something for the fruits to get stuck on. this might come from allowing the fruits to attack the lizards though, which is planned soon, so it's just a note for now
i do not understand something
i have a r32 uint texture
fout_id = uvec4(fin.id, 0, 0, 0); (vout is the same as fin)
that i write to with nonzero data
but the value in the texture remains 0
i do not know all of the state that could be fucked up here 
i am posting about this in questions since i am out of things to look at
so the turtle is a doctor
the eternal struggle between apples and doctors finally in a computer game
something something a day keeps the apples away? ๐
the idea with him was for him to make things attack him, he looks very masochistic though ๐
are the apples zapping the turtle
yes
it's zapping time
he even dies
OH its a 3D health bar
yeah
ah
this is only slightly broken ๐
though, i actually didn't get any crashes upon testing all of this for the first time, so this is still relatively successful
is that the boiling oil thrower
of some sort ๐
fixed da tings
looks better on 144hz! hmm...
thinking about if i care about that discrepancy
Tower suggestion
i have thought before about adding both octopus, and snails lmao
that guy looks like an acid/thorn thrower
i think i should represent women at least somewhat so i think it's gonna be a woman xD
woman lizard
i think they need a belt of some sort or something though
dark souls tattered garb

pretending to be a concept artist
oh btw
dominance: asserted
huh?
it was meant to be a thx for the idea :)
i wonder if that tone is not read now though ๐ค
T-pose = dominance assertion
oooh
i forgor it was even like that ๐ im too used to it
i wonder now if character animators are more blind to t poses
this is looking good
twitchy
I think the idle animation is a bit intense, but maybe that's the low framerate of the video talking
oh mao
Honestly quite incredible
i'm sort of wondering about my gameplay code
case study would be, for the assassin, their attack was supposed to weaken units hit
so i have a struct for numerical stats
struct Stat {
umap<???, StatEffect> effects;
float value();
};
struct StatEffect {
enum Type { Type_Base, Type_Multiply, Type_Add, Type_Override };
// ... value, stacks, etc.
};
weaken in what way?
make them take more damage
and my abilities have callbacks at start casting, trigger, and end casting, where i manage stuff like cooldowns and what not, so clearly we need something to go in the trigger callback which adds a stat that's used for a damage multiplier
something like
void ability_callback() {
// ...
enemy.damage_taken_stat.effects[this_ability] = StatEffect(Type_Multiply, .2); // takes 20% more damage
}```
but it needs to have a limited duration, so we need a timer class, i already have one that i use for all my emitters in the existing gifs, and even the abilities use it
hmm I feel like Risk of Rain would be a good study on modifier mechanics
ok same
2's is available because of modding
clearly it works though :^)
my timers work like this
add_timer(scene, name, [](Timer* timer, void* data) {
auto payload = (EmitterTimerTimeoutPayload*) data;
payload->scene->registry.destroy(payload->entity);
}, payload, allocated_payload = true, permanent_timer = false)```
I was kinda hoping they'd have a nice system for this, but I guess not
so i can just remove the effect if i have the key into the stat effect map when the timer triggers
there's two questions
do i ever need to do something to the timer other than just let it tick
and 2. does it really matter what the key into the stat effect map is
because my abilities have UUIDs (random u64s), so i could just use those, and even offset if i need to have multiple timers
really i should just continue with what i'm doing and not try to solve problems that don't exist
i.e. just add a timer and let it tick, if i ever find a reason to interrupt it, then worry about it then
and just use the ability UUID as the key for the stat effect map
they are tremendously OOP brained
like
man i don't even want to think about it, all i remember is when i tried adding a burn effect there were like 6 different "Burn" classes
Lmao you definitely have a better idea of how to do this than I do then
the reason why i don't really think it works in ror2's case
is because honestly, the development doesn't go that quick
like they aren't on the high end of item count, complexity, or anything like that
something like noita i'd mad respect the source code of even if i didn't understand it at first
RoR has a funny lizard character that reminds me of your game
Also the art style in general
the poison thingy?
Yeah
yuh
Poison boi
i like the game, just not the code 
Wit da leap
acrid
I bet @urban lantern would have some good ideas about making an ability system
Heh, get teleported
for why?
was he not here already?
naw
deccer was not
they were in the thread before your projects and i think joined for a bit at the start
no clue what risk of rain is
SURVIVE AN ALIEN PLANETOver a dozen handcrafted locales await, each packed with challenging monsters and enormous bosses that oppose your continued existence. Fight your way to the final boss and escape or continue your run indefinitely to see just how long you can survive. A unique scaling system means both you and your foes limitlessly increas...
$24.99
153803
85
hmm ive seen that somewhere some time ago
i been tryin to figure out how to add an ability to lizards that isn't just their basic attacking
there can be
- just a button on a UI that you click
-> with a cooldown?
-> driven by mana that you get from attacking / being attacked?
-> available on kill? - automatically with the above conditions
- the one that i'm most fond of currently, a special tile in every area that you can place a lizard on to make them "cast"
i also probably want the enemies, or at least special ones, to have the same ability and casting sytem, so if it was player controlled, then it would be some AI heuristic
and if it was a tile, then there would be a tile for the fruits and for the lizards
i think i'm gonna start with the tile idea
since it's the most unique, and the others will be a fallback if i don't like it for some reason
spent a bit making a model for it lmao
also fixed a lot of the shit normals on the models
still not perfect lmao
the tiles are very visible ๐
depending on how cluttered you expect the map to get, the "manual ability trigger" could become too much micro to effectively use
however, it can work if you don't expect the player to have more than a handful of towers at a time
i'm a little micro freak
(i.e., not bloons)
idk if you've played the company of heroes series, but it's great in terms of micro and per-unit abilities
nah i haven't
basically you only control like 6 squads (no individual unit control) at max, and some of them have manually-activated abilities like grenades and such
but it's pretty manageable, partly because abilities cost resources
yeah that game has too much emphasis on mechanical skill imo
im sayin the opposite
CoH places more emphasis on individual unit micro
wait what's the difference
SC: micro an army and an economy
CoH: micro a few squads
oh
it means you give a lot more attention to individual units compared to SC
i've always imagined a game where you control like 3 league of legends champions at the same time doing slightly different task as both
entirely unexplored and super fun
it sounds at least in that direction, so i'm interested to try it
i spent like 2 years of my life thinking about what parts of it people potentially wouldn't enjoy and how to avoid that
le classico wanting to make a super game
if you make it an mmo it will inevitably be a success
truly, i'm integrating networking as we speak
googling "how to make an MMO with RPC networking protocol"
MMO with HTTP
Haven't played coh3 yet but it seems good
Coh1 and coh2 are both worth it, though maybe coh1 is better for single player
Coh2 has steam workshop support which is quite nice
And matchmaking if you want to do PvP or PvAI
no interest in pvp
i saw some reddit comments saying that coh2 just had a couple more problems
Both are solid choices tbh
But I think the community content gives coh2 an edge overall (coh1 has it too, but it's harder to install mods)
i would just get 3 but 60$ lol
reminds me of how at my company all of the execs say 70$ instead of 60$ now 
what a splash
@obsidian wolf can you show @grave nacelle your animation editor thing again? they are too shy to ask ๐
lol yes i would like to see
skeleton editing?
the graph part
hmmm
i'm still not sure which part, i have two things, one for sequencing poses, and another for posing skeletons
when i import a model, the keyframes in the animation all get put into the "Extras" category
the part in which you can parametrize animations to use them
variables state
and etc
and i manually move them to the pose category by dragging or doing the checkbox + migrate button
the timing in the pose categories is time to interpolate to it
it's very hardcoded, but it's designed specifically for my game, because i don't have enough time to make or use a complex animation system
can also preview them to mess around with timing. one thing i wish i did here was differentiate between cycling and non-cycling states
there's no graph though, see below for reasoning ๐
-> because i don't have enough time to make or use a complex animation system
i also used to be able to edit the poses in engine, but i haven't reenabled this because right now i'm just importing everything from blender
the animation system is mostly from this
https://www.youtube.com/watch?v=LNidsMesxSE
so if you're not using it or something similar, it's pretty hard to reference this stuff honestly
In this 2014 GDC session, indie developer David Rosen explains how to use simple procedural techniques to achieve interactive and fluid animations using very few key frames, with examples from indie games like Overgrowth, Receiver and Black Shades.
GDC talks cover a range of developmental topics including game design, programming, audio, visual...
this is what the results end up looking like for ~10-12 poses per character, they're not perfect but about as well as i can do without it being my job xD
if this isn't what you were lookin for, that's ok, its still fun to talk about ๐
no it wasnt, i was looking for a graph editor for animation but it interesting anyway
yeah, i wanted to do that too, but decided just to hard code my graph into code
limiting keyframes to poses allows me to treat state transitions as just pose interpolation
i have seemingly learned that chameleons are the only lizards that catch bugs with their tongue
and now i have to decide whether i care
chameleons are so neat why do they get so many unique features
They got the p2w edition of life
truly
shilling vid https://www.youtube.com/watch?v=KJtaIqahi3I
Watch these charismatic creatures shoot their tongues out like arrows to catch an insect, mimic leaves swaying in the wind, and display their hidden colorsโand learn just how they do it.
โก Subscribe: http://bit.ly/NatGeoSubscribe
About National Geographic:
National Geographic is the world's premium destination for science, exploration, and adve...
Ew
yes indeed, better use http
No
Too many game engines use crap like RPCs and replication
Those donโt scale very well
You need to go low level with your netcode and pack your bits into your packets manually, counting them accordingly. You need to set up your protocol to be resilient to lost packets and not halt the simulation just because delivery wasnโt ACKโd.
Bandwidth is going to be a concern with any MMO. Donโt put in an abstraction layer. Every byte matters.
tbh i sort of do want to make something multiplayer at some point, but certainly not an mmo lmao
First problem is that youโre trying to slap networking on it after the fact
what
Usually you want to start netcode early on and design a game around it
i dont want to make this multiplayer
Oh
yeah i know how bad of an idea that is
heavy WIP still but damn this was hard to make
need hands + feet, texturing (beyond just gradients), and the clothes was just testing so they're poorly made, but i think it looks not shit anymore?
i get the feeling that chameleon characters are generally avoided because of how weird the proportions are on those creatures
btw this is why i havent done the hands and feet
have you considered making this character inflict sleep
a coma chameleon if you will
๐
the unironic drive of it was that i wanted someone that would grab fruits with his tongue
and apparently chameleons are the only lizards that grab distant things with their tongues
that looks pretty cool
holy muck, i just wrote a bunch of gltf writing code and it worked on the first time
i'm a freaking professional
Can it save out @urban lanternโs cube?
the round trip deccer's cube test
Ya
no ๐ i could, but hierarchies are extra work and i dont need them
trying to automate my WCF tileset
Whatโs with the wasted space
so i can make more tilesets, but less manually
my editor for the tilesets exposes some dots to press to show what gameplay tile they represent
Attach this to my server
It supports tile-based games
๐
pretty sure that's a networking task, assign it to the server folks (you) ๐
Oh just use my API
Have a collision map on the server. Pass in the target tile coordinate you wanna move toward on the next tick and a youโll get a stream of responses on what tile your character should be standing on every game tick back.
Just interpolate for rendering in between with whatever animations you like.
for saurian sorcery 2 ;)
in approximately 50 years
Ha
new mechanic for saurian sorcery 3
for the merch
tho that's actually a very neat idea
if only i could disassociate from the "japan" meme
Reminds me of this incredible meme
lmao
well i have all of the edges now
unfortunately 490 is a lot of meshes to make
so i'm going to try to generate faces instead of just edges
but idk how yet 
i posted about this in the questions forum because it's a super niche problem, so visibility is good ๐ if you have any ideas, pls gib
abilities :^)
I just noticed that the health bars have shadows lol
hehe, everything does, my materials don't have an option to exclude
(in this it's the range preview)
i'm sort of thinking about having gameplay mechanics not reference entities at all
so for example, the buff ability above would only buff a specific tile, not the orange guy that casts it
probably more effort than it's worth though
the current restriction is that abilities can only target squares, but their effects can then be attached to units
do your guys move
moving units from tile to tile costs money
right, but you could buff a square, then swap units and transfer the buff
Thats interesting
so there's basic attacks, and an ability that placing units onto this platform casts
and the way i'd have to set up self-buff abilities if i did it that way, is that it'd probably buff the last square that the unit was on, then teleport them back to it
finally made a tree
you have a hand for those kind of things
and a head
and my axe
meep
not perfect, main issue is the arrow blending back into the quiver (which i have a fix for, it's just bugged), and we'll see how spawning the actual arrow projectile goes, but i like this ๐
the cast is supposed to be him throwing something, perhaps a large bear trap or a smoke grenade, not sure yet
i just realized they alternate hand sides in the idle animation 
damn it's really crazy being able to reimport an animated mesh and not lose any data
takes like 3 minutes to fix that
Horrors within human comprehension
i have a teeny tiny problem, my ability casting works by having an ability targeting function, where when a target is found it casts a spell
works well if a spell is instant, but the more delay it has, the more likely it is to miss
it happens near the end of the vid above
there's two (and a half) ways i could fix this that come to mind
- instead of using the fruits current position, i have their pathing data, i could approximate how long it'd take for the ability to land (either pre-trigger casting time, or pre-trigger + travel time), and estimate where they'd be at that point in time
- should be fairly accurate
- fairly representative of how targeting actually works
- can get kind of complicated, especially as abilities and effects grow in complexity (e.g. a unit has a move speed buff for 0.5 more seconds.. do i account for it if the ability will take 1.5 seconds to land?)
- i could update targeting at trigger-time (e.g. right when the arrow releases in the case above)
- would be more accurate than currently is
- very simple
- lizards usually rotate to face their target, and turning to face it is usually done during the precast time, so this would mean they could cast in a direction they aren't facing
- only mediocre accuracy
and the extra half option is to give lizards an "intelligence" stat, where i implement a tiered targeting AI system, and it selects the targeting behavior based off of it...
big raging crocodile? constantly missing attacks, but maybe the old wise wizard gives an aura that can help him out with that
old guy using a bow? knows the perfect square to target to maximize damage
- unique to my knowledge
- creates a lever to balance some things around
? probably not very intuitive (especially for minmaxers)
- hardest to implement
Btw what age of empires 4 does is make projectiles curve towards the target (it seems like they follow some sort of parametric curve)
melee characters have this problem too, but #2 + that would work
its just a little odd because targeting is per-grid square only, and so that'd be a very large shift especially if not near the start of projectile life
These are some of the same challenges missile guidance systems need to resolve.
but in a video game you can just cheat and make t=1 be the location of the target
instead of all dat im gonna do water this week or weekend i think
hardest part will be that i probably want to do reflections ๐
and i have no clue how, i'm guessing i could do SS fairly easily, but i might just render twice from the camera flipped across the water plane lmao
rt 
literally the only reason i'm not going to intergrate any hardware RT is renderdoc
and software RT is too much work
But you'll still have Nsight, RGP, and RRA
renderdoc my beloved
bababooey
but i might just render twice from the camera flipped across the water plane lmao
i'm probably gonna do this xD
hmm wait does that even work
if the water plane isn't completely flat, idk how people distort it
i should probably just google around
i need at least a lil distortion, it'd probably be minimal tho
you can probably cook up some fake distortion to look like ripples or whatever
just by sampling the reflections with an offset
ye
i don't even think i draw a mesh for it
i also wanted to add a lizard bench for lizards, similar to TFT
mostly so they have a place to respawn and so the shop is less messy
not ugly water and that are soon tm ๐
also need to discard fragments above the plane, historically there were additional clipping planes in gapis for that, idk how it's done in modern days, could be manual discard calls
and pretty much you can't do planar reflections for curved surfaces
that's where probes begin to shine (very dimly and with artifacts)
adding normal maps and shifting uvs with them can simulate ripples somewhat plausibly but will expose parts where geometry cuts off at the waterline
the waterline will be masked off by foam
SSR is just bad, okay with probe fallback, but still meh
all of the references i liked for water are basically flat
i'm not doing no sea of thieves water, so maybe i can just do the planar hack and hide the artifacts
yeah foam works good
i basically just need a little movement so it isn't a static frame
can also mask away the ripple perturbations near the shore
a e s t h e t i c
what's the algo then? just march against planar render g buffer in reflection direction?
no just render using reflected camera and clip geometry above the water
just add water one 
it'll look fine as far as I remember
well no point to overcomplicate it then unless i run into problems
i'll just try that
mobile game aesthetic lmao
this is a github page that revives an ancient tutorial for XNA and D3D9 which has some pages on how to do planar water with reflections and refractions using method I described
I found the method there btw
or you can directly use the wayback machine if you prefer
hmm, nice
i may just
ignore reflections for a while lmao
add some noise waves with this and call it a day for now, i consider trying to experiment with hue shifts in the water to make things fancy
I hab idea
you can use the foam texture with some kind of noise
so it'd be noise that's only visible where the texture isn't black (i.e., in areas where it currently is)
are you just saying add the current of the image and the white parts of this? 
uh I mean maybe multiplying the "foam density" (the texture you generate now) by noise
it'll probably be an add but yeah
im not sure
i want to try a lot of things because it's kind of random what looks good
the "adding" thing would be something else
like global foam that doesn't just affect the shore
what I'm talking about is specifically the shore foam, trying to make it more natural looking
this is a random debug vis, but it looks kinda neat
ok
my experiments with hue shifting look really bad
it might look better with gradients on the tile set, which i've considered doing
bruh this is looking better every day
glad it's not looking worse every day
we'd still have some time until it would look bad 
ok i'm satisfied
Mmm worter
Btw another feature you could add is a fresnel effect where the water subtly changes color with the viewing angle
i might do that
but it'll have to be based off the water plane i think to avoid it being too detailed amongst the stylized look
what I did back when I fiddled with water was make it turn slightly greener as you looked more directly at it. It was a very low frequency effect
If you ever add reflections then you can add proper fresnel and then it'll look perfect
that's what i get out of it
i do like it, i'm exaggerating the effect here to evaluate it, but when it's subtle it looks really nice
i'm not so sure the right one is better though
I think it looks more plausible
i haven't found many good references
I just googled "caribbean water"
a big problem with references is that that the sky and shallow reflections play a huge role
another one is that most real references are on beaches
yeah the depth has a big effect on the greenness of the water
a lot that i see look darker at more direct angles purely because there is less reflection
that's if the water is very deep
emote
