Honestly, cell shading and outlines make old games and games that have basic graphics actually look good, like jet set radio. Shits like 20 years old but still looks decent
because they look like cartoons, and cartoons havent eveolved in a while, so we're all confortable with the colective conscious about cartoons, so if games look like cartoons.. they will always look good, as soon as "cell shaded" cartoons don't get phased
If you decide to stick with this slightly more cartoony feel, I would recommend using some kind of similar muzzle flash. The one that pops into my head is actually a mod for TF2 called Toon Fortress. It has a very cartoony, comic book type feel. It might go well with your models.
I want to go for a more anime/painted look rather than a western comic vibe, but right now I'm experimenting with different techniques to see what I can learn
@@garbaj As a follow up then, what you could do is make the same flashes thinner and longer, so the style is changed but the theme of animated stays the same.
What ever style you eventually settle on would hugely benefit from the addition of dynamic shadows. I'll use csgo as my example, as you can see shadows from the gun cast onto it's self and arms really helps it belong in the world but also helps tremendously with shape recognition. You can keep the file size down with minimal texture and model sizes and the shadows will still do all the heavy lifting of making things pop. Csgo has clever solution of baked Environment shadows with shadow cascade ones on the first person view models, so hopefully there's a technique you can find that will give you the performance your looking for.
I've been making anime-inspired environment art for a game, recently, and one thing I can tell is: Inverted hull doesn't work for a lot of stuff, but it is great for "hero props", like those old anime where you can tell "Hey look, that rock is going to blow because it is different from the rest of the environment!". You can use that as a feature, too. What I found more usefull is to make handpainted 2K trimsheets, that are quite light in filesize, and make few and simple modules to work with. And it only uses a diffuse map and simple shading, so it's pretty easy to make. Anyway, it's really great to see your project growing :D Keep it up, and have a nice deving
Did you try to implement edge detection as a post processing effect? It might be little complicated but i think thats more efficient than rendering every object twice. Btw i really like this new look. Ive been following your devlogs for about 3 months now and this art style is my favorite so far
At least the 2nd model per object is pitch black. Rendering black geometry is usually not too hard on the computation. No additional shading, no need for lightning calculations. I am not sure if edge detection via post processing would be a much better choice.
Yeah post processing will reduce draw calls and you won't have to invert the object for each item you put in game. The problem with inverted geo for an outline is that further objects will get a slim line and near object will get a thick line - unless you dynamically scale the object outline based on the player position and will cost in computing math for no special reason.
@@TheSairenSA That's actually part of the appeal of that technique. A lot of comic and manga artists use line size to convey depth, and that recreates this very well !
That also reminds me a bit of Borderlands - I really enjoy the look of it and much prefer it over those retro styled indie games you mentioned. Good choice!
I just wanna throw my personal art recommendation. You were talking about how the model looks flat, gradients would greatly help make recessed areas like between the muzzles that on the model actually is just flat across or on slightly uneven edges, a slight gradient would help make it pop out more.
I agree. The thing that's messing me up atm is figuring out ways to make smooth gradients with low resolution textures without it looking too pixellated. I'll keep experimenting until I find something that works
@@garbaj depending on you models geometry, you could make a texture with a gradient (1000×1 pixels) and scale and stretch the quads on the uv plane so that they fit in this gradient. You could make a 1000x10px texture that has 10 different color gradients (or more). In some cases this might work...
@@garbaj For a practical example/inspiration on how to utilize gradients to colour objects for a clean look check out Hyperbolica's devlog #5: ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-spDA3hPJf6E.html
It's a nice art direction. In the past I would create outlines around scene geometry using depth information and a sobel filter, layered up with a thinner line filter applied to displacement maps. The combination of thick heavy lines for geometric detail and small view dependent lines for texture level detail was remarkably similar to ink and marker artwork that shared a lot of aesthetic to anime.
That's some culture there, feels like the simplistic look gets trampled on due to how poor it can look in Roblox. But Unturned actually takes the style with some culture and makes it look way more pleasing.
This art direction is really a great idea to streamline the visual part of your production. For having played with those kind of shaders a few time, I would encourage you to make a bunch of tests with lights, crowded environment (the outline can create a very busy image depending on your environment), etc... Some cel shaders cannot even support correctly more than 2 lights. Maybe a dithering effect in the shadow could had depth. Anyhoo, it looks very promising and I can't wait to see more!
Indeed. They guy who made the textures also focused on the environment being very different in pallet of the characters, and the characters are designed to stick out, so the only way to hide is by being in darkness. This is more realistic and also makes sense, because color is lost when you decrease the brightness, and the differences in colors become hard to distinguish.
tf2 is a masterclass in visual design. they did little things like giving characters rim-lighting and making the team colours a different shade of red and blue from the building colours to make sure you could see people all the time from any distance. and my favourite thing is how they gave every class a very distinct silhouette, even with cosmetics on to make sure you know what you're up against
@@Tulip_bip indeed. there also wasn't a complex mash of different colors, so everything was easy to see. unlike r6 siege, where every skin has like 20 colors that blur into eachother and make it impossible to see people.
I really like the fact that youre prioritizing smaller storage size for the game, I have a lot of games over 30 gb that take up space in my pc, so a 5-10Gb game is always appealing to me and im more likely to download and try it out
@@garbaj This is an odd game to mention but there was a game called Shogo Mobile Armor division that came out and it was before cell shading became a thing (Jetset Radio kinda came up with it as far as I know) but it has some really good looking anime inspired looks to it with very angular mechs. Not sure if you want the game to replicate that but it'd be an interesting game to look at for references on designs if you're going for an anime style. Have a good one Mr. Garbaj
gearbox did some interesting talks about borderlands 3. that crosshatch shader is kinda genius ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-MeRh6ljyQDs.html
If you’re going to use the hull and ILM, remember to tailor each and every line so it’s not just a uniform chunk. For ILM, as you know, push and pull the UVs to get tapering. And with the inverted hull, mess with the solidify modifier’s output vertex group! That way you can essentially weight paint the tapering on your models. Trust me that’ll make a BIG difference in how your game is perceived. Get them crispy linesss! I would also perhaps look into basic vertrex animation using textures for even more possibilities w/ outlines and your model as a whole. Keep up the good work!
I truly appreciate your style of video, while I enjoy watching devlog content alot of them sometimes feel like they drag on for too long. You have very concise videos with easy takeaways/lessons in them, and I love how you relate most video topics to actual techniques you've noticed/learned from other video games.
I love how every time you make a new video talking about making your working on, you teach me something new about first person shooters I never understood before.
I just wanna say that despite me not learning much useful for myself, your videos are still really interesting to watch and your development updates give me the inspiration to keep working on my own project as well.
I think a bit more texture and model work would improve the game’s look drastically. I like the comic book art direction you’re going. Reminds me of Borderlands 2. The difficult part is making sure the textures and models are a consistent art style.
dude! ive been wanting a FPS with this visual style ever since i played XRD. awesome job! one thing id recommend trying is using sort of a psx style model warping, which could add to the hand drawn look by adding in perceived "inaccuracies" in the perspective. makes it look more like a drawing!
I dunno about the model warping, that might look okay with super high-res models, or super low-res models, but with the poly count he's got at the moment, I don't think it would work well. Not to mention that it might pose a problem with the outlines, since those vertex points will need to be warped the same amount as the rest of the gun. That means we would randomize each point of the vertex on the main gun a certain amount, and then copy that value to the outline so it actually looks okay. Thing is, more vertexes = more values to be stored more values = more memory needed more memory needed = worse performance So..... I don't think it's a good idea, at least considering the models and methods we've got.
The gameplay wasn't the only reason I fell in love with GG Xrd, so I think this is a great idea! One interesting thing about the graphics in Xrd is that each model is lit with its own light source which doesn't necessarily agree with the global light source. That probably wouldn't work for a fully 3D game, though. Do you have any plans for the lighting?
I like the direction you are taking your game, there are some shader based options for similar outlining on a mesh. If it was me I would personally try out both to see which one looks better visually and which one has better performance then make my decision on which one I want to use. Since the inverted hull method requires a duplicate mesh that would personally also bother me a little bit and I would lose track of it sometimes, not too big of a deal though imo. Game looks great!
Dude I love the direction this is going in! Honestly I feel like adding reflective surfaces on guns or small imperfections on things for would help keep things from looking flat I dont know a thing about game design, this is just a suggestion from a dude from the internet, cheers!
0:46 honestly that house and shotgun seem nice and at this point im attached to the no texture blocky weapons, so i think a super simplistic only the bare detail type style with celshading with a bit of blockiness (but not some minecraft or super early concept type stuff obviously) would look the best but go for what you go for man
The inverted hull method is a bit of a hack that tends not to hold up too well in the long run. Try procedural shading and procedurally generated textures if you want to keep things small - it's relatively easy to pull off in most cases. It mostly boils down to creative manipulation and booleaning of procedurally generated noise textures and some color ramping/thresholding. There's software out there that's specific to it (substance designer, for example), but it's usually not necessary. I've got a blender-specific tutorial for the shading part on my channel, but the overall idea carries across to most game engines and other 3d graphics software quite easily.
there are TONS of methods to save on texture size. It's a fun study. -procedurals -reuse noise or overlays on a lot of textures -mask using vertex color -mask using the deferred passes Cant recall other methods right now but you can research on it pretty easily. Most of it sacrifices processing power. but if package size is your main goal, just go for it.
Which, nowadays, is very unrealistic. Man, I wish games were a lot smaller-- unless the loading times already take long, I would rather wait a few more seconds for the game to take less space (extra loading time being decompression)
There was a trick I saw where instead of flats, they used gradients to give the feeling of more depth while keeping file size small. Its used in a lot of minimalistic indie games. I believe you can also make a model with slightly more res and small details, such as bolts, gaps, and creases, and bake the model to make a bump/normal map to add depth to the game. iirc, it just shades the model to make it look like it has extra geometry without actually adding geometry. It only works in small details. Its used often, for things like tree bark, windows, and raised print stuff like the Vector logo for the Kriss Vector SMG. Or even rust and dirt. Been a while since I've done modeling stuff, trying to get back into it.
I like this art direction as low poly retro style shooters look weird it’s for me either pixel art (which can be hard to do right for a fps game unless if you are using build or Id tech 1) or higher smoother models This art direction you chose for your game sidesteps that completely making it look better then either way I mentioned before
I work in the Dutch Game Industry and had the privilege of working for a man called 'Tomas Sala'. He was always very passionate about making games with only materials / shaders without using any textures. He eventually used this idea for the game he released called "The Falconeer". I highly recommend to check it out. It can inspire you to find your art style.
I love this art direction, it's really interesting - and I like that you're aiming for the aesthetic with your eyes open and not just "seeing what sticks" by throwing stuff at the wall. A recommendation I haven't seen in the comments is the original "XIII" game. It's a comic book style, complete with panels and flourishes - very reminiscent of what you have here. If nothing else it could make for good research beyond borderlands and guilty gear. I applaud you trying to step outside of the mold, and I look forward to seeing a release!
I think animation is a long forgotten skill that can be incorporated in low poly and detailed environments. Building super over the top animations with pop is awesome
I've been watching your videos for quite some time, and it's always interesting to have looked into what you're trying to develop. I'm very intrigued by the modeling look, it looks fantastic. Though I've got one question, you mention you're trying to make a Multiplayer FPS though you've got any modes in particular. I can imagine with Battle Royales, Team Death Match, etc, being "popular" for most Multiplayer titles, you've got any distinct modes that'll make you stand out?
If I could recommend one: King of the hill mode. Ur holding a position on a height and an enemy force that’s much larger than yours has to try to take over. U can have lmgs and grenades if ur defending but and whatnot but the attackers have a larger force. I think it should be a best of 3 rounds. But the attacking enemy shud be able to call in air support after a cool down of 5 mins[each round is 10 mins btw].
One thing you can do, depending on the lighting you intend to use, is if you are using just flat lighting (no directional lighting or anything, everything is just its flat texture) you can draw in shading into the textures themselves to make them pop. But I don't know specifically what you're gonna do so this may not be applicable.
For the gun it looks great, but yeah, the environment might be a bit much. I know you are in godot, but you could make similar shading style as that of Flat kit. Heres a link to their display case video : ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-Sc838YuWPhA.html
When you talked about other games having high res textures and played the Warfare clip it reminded me of a video I watched of that game and how detailed the killstreaks are. The advanced UAV for example, you know, that stealth plane that flies so high in the sky that it's incredibly easy to miss when you're looking for it, THAT has full HD textures. No wonder the game is so massive!
This technique was also used in a PS2 game called "Musashi Samurai Legend". They did the inverted hull and also paint on it to match certain part's color
another technique which can be used in cases where inverted hull breaks is having the shader switch to the outline color once the model's surface normal approaches or exceeds being perpendicular from the view direction
This is the same art style used in the VR horror game "Lies Beneath" and I found it very satisfying as it ran great on hardware such as a quest but was still so appealing and immersive. I feel that the same will happen to your game making it satisfying and enjoyable to play while still being super lightweight.
I’d recommend materials, which sounds like a no-brainer, but if they don’t take a lot of space, adding simple color and reflection can make even a textureless object look pretty dang good when done right. Even a simple specular highlight can do wonders
The inverted hull technique is a good technique for outlines. I use it all the time to outline/ highlight objects. You may at some point want to use a stencil mask on your shader though to really finetune some objects, especially when using multiple objects together so you don't add extra borders. I'd also recommend a toon-lit style shader which can be achieved relatively easily depending on your level of knowledge with shaders. Id still recommend some form of normal maps to help break up the light a little bit, but keeping the overall feel of the toon-lit style. even a 256x256 normal map at very small scale values will really help get more depth, also - just a thought, but have you considered using metallic / smoothness properties in the shader ?
This is a really good way of doing toon shaders but, with texture painting. Kinda saves on time and the hassle of writing a shader. Especially if you can express this artistically. This technique is amazing.
oh yes, the backwards model technique. an infinitely smart and simple trick to give things an outline, I had a theory for a trick like that a long time ago when exploring out of bounds areas in 3d games. I've seen it here and there and it still is such a useful trick to help emphasize the styles a game is going for. with that being said, a really important factor in it is the size of the outline you want. as you said you dont want things to look too cartoony or too anime-esc, you want a balance, and balancing the size of the outlines is exactly what you need to get what youre looking for but im sure by now you've figured out that the size of the outline drastically changes the feel of what its being applied to. good luck on development, I plan to keep in touch with this from here on.
My team used a similar technique for our final project in our game production class. We only had the time and team size for a low poly game with mostly flat textures, so we used a custom made outline shader to give the game a comic book feel. To add to this, we also made all the textures slightly emissive so they'd be bright and would be less affected by shadows.
I came up with the idea for the thicker darker opaque version of each object for cell shading, but decided it wasn't optimal for performance, but I never realised that is just a standard way of doing cell shading
I'm sure other people have said this but if you want to make models look less flat, you could add faux shading to them within the textures (which works best if you don't plan on using a lot of dynamic lighting) So basically, say, for the shotgun the bottom half of the barrels would be a darker tinted version of the normal barrel color. It's not true to life but it gives you a lot of control over what gets shaded and is a pretty popular technique, like in Mega Man Legends Also, another technique used in Guilty Gear, can experiment with shifting the UVs ever so slightly to make the line thickness more varied in diff spots to aid the hand drawn look
The style reminded me of two games with similar style, Escape Dead Island, but mostly XIII's style. Would recommend taking a look at those if you like.
Have a look at cel shading. The technique dates back to the 90's and it's a pretty easy shader to implement. In a nutshell you can use the regular lighting equation, and perform a threshold, something along the lines of `clamp((x * 0.1) + 0.5, 0, 1)`. Another way to implement the black lines around the edges (instead of inverted hulls) is to use normal in the pixel shader, if it's perpendicular to the camera, then render the outline color. This will halve the number of draw calls, which is always a good thing.
A really good method for making tiny textures is one used in donkey kong country 64 where you have a circular gradient and stretch tris across it to make colour variation. It makes more sense if you just download a model and look at it. Only problem is it wouldnt allow for the outlines unless you overlay yet another model on top with outline textures. Alternatevly a good way to make it less flat is to make more detailed models with more colours.
I use toon shading when animating sometimes, and I usually use three different variants of the texture for my object to achieve a "shaded" look. One is normal, one is the dark/shadowed variant, and the last one is the light/specular variant. 3D programs make it very easy to change when and how these colors should be displayed, so I'm not sure about the implementation of such a method, but creating a system that uses three flat colors can add a lot more character at the cost of very little performance.
I think one of the biggest improvements from the current “simple” flat shading with outlines would be the addition of ambient occlusion to make the flat surfaces more gradient-like at joins with other surfaces. Could be an interesting effect. A huge bonus you could implement with such a relatively simplistic split/tint/recombine approach to UV separation would be true-ish radiosity. Something I LOVED about the Last of Us when I noticed it.
I just did something like this in OpenGL using C++ and it's called object outlining via stencil testing. It's used a lot in top down strategy games when the mouse highlights a group or selection of objects and you see an outline by scaling the object slightly larger where the stencil test passes and discard the rest. Very fun to tinker with indeed~ 👍👍
At first I also thought that the techique used for making an outline was genius, but then i realised that its super basic. It uses a bit modified technique for making fake shadows.
thank you for trying to make the game lightweight that really means alot to me and the other people with bad wi-fi the best internet that i get which rarely happens is 1 megabyte but most of the time it's around 300kb - 700kb
if you haven't actually gotten it from taht channel, I recommend Royal Skies because this is exactly what he does in his videos, he even referenced the same Guilty Gear GDC as well - for the shading I recommend using a default white-model for shading, adding a color ramp and setting a hard transition, then mixing/multiplying that with your texture color to get that anime-style cel-shaded look, that's the method he uses as well and should be pretty easy on performance too
the weapon recoil should be more punchy than floaty. a firearm discharge is instant, and that energy isnt given back over a long enough duration of time, especially in non-automatic guns that dont have a bolt cycling to absorb recoil. this basically means that anything thats not full- or semi-auto should have a more powerful recoil animation.
You should go with a line style shading, just like in the mangas. The style is pretty simple, just a couple of lines parallel to eachother and if you want a darker shadow, you make the lines thicker.
I recommend toon shading and backed lighting om environment. Adding hand drawn lines n stuff or dithering could also help make the game look less clean. Unity market has some good toon shaders.
If you wanted to add an in baked shadow for the model, like to skip an ambient occlusion step, maybe look into using screen tones or hatching to play with the graphic look
This technique reminds me of cel shaded graphics used in games like Wind Waker, Jet Set Radio and XIII. I also think cel shading is woefully underused in the industry! Nice to see your game is gonna have a style like that!
You can make more parts of the model stand out by working with the lighting effects. Lighting takes up a lot of processing power - but it would allow you to use lowrez models which are still very pronounced and distinctive by adjusting the glare and reflectiveness of the various surfaces. Given how small the game is, in total, it shouldn't be too hard on slower machines even if you do use highly ornate shadow/lighting because the total volume of what is being rendered will still be really small. So you should be able to get away with it without making low power machines spontaneously combust.
Seems fine to me. If you decide to go cartoony, maybe you could get a watercolor style going for the environments -- assuming it wouldn't be distracting or take too much space (also other constraints). If so, a grainy texture could be added to the guns and such to make them not look so flat.
I'm actually really in love with how this looks, it's a great comic book like artstyle that's similar to Team Fortress 2 yet still completely distinct. Also, using the cell shading style on player models but not the environment will definitely help make the characters pop and be easier to kill, in a similar style to Valorant where enemies are highlighted in red to pop out of the backgrounds. As for the model, it's reeeeeeeallly long for a shotgun (i'm assuming that's what you were going for with it), so maybe shortening it by a bit would help. Also, having a second hand on the gun helps with things like reloading, recoil, etc.. but i'm assuming the model was made more as a proof of concept than a permanent addition so it's not too bad.
I'd recommend you to look into Life Is Strange and The Long Dark visual styles. Good lighting, good shaders, hand-painted textures and sprites are really doing the job there. The final stylized look is totally conceals those games low-polyness and massive texture compression.
I mean, this cell shading you got going on is really nice and something that is not so used, something strange to see is this with darker colors, wich looks good but it's rare in the already rare world of cell shading, gl btw
And also if your going for an anime look, in the animated spiderman movie, the design of pennie parker (idk how to spell her name but she's the one with the mech) is actually inspired by anime and I believe that the directors have actually studied anime in order to get the look right. I'm not sure if they made talked about it in interviews but it might be worth a shot to look it up. Gl with the game
I know you probably won't see this but it's worth a shot. I'm no programmer but maybe you could make 2 low res textures and combine them. One for color and one for blending. The color one is self explanatory, it just puts color on the model. The shading one would be a bit more complex. The darker the color of the texture, the further it blends into the surrounding pixels. In theory it would convert the additional data storage needed into processing power. (which I know you're trying to avoid, but I still think this is too cool an idea to leave to my trash bin)
I feel like you should definitely have some fun and “wacky” animations, detailed ones that are unrealistic technically wise but are still very smooth and crisp, without them being super fast so you can’t appreciate them.
When look at images at some angles, the interior black borders aren't properly lined up with the interior colored angles. E.g., the roof of the house at 3:11 . The interior angles do seem to have a smooth transition (i.e., the width of the black border is narrower at angles where the edges are first revealed), but transition needs to fill in starting at the edge rather than ending at the edge.
most of the space in modern video games is sound though. A fantastic example of why you were wrong is Doom Eternal. The huge is massive, looks amazing, has REALLY highly detailed textures, has more than enough polygons but is only 27GB's.
Looks great! You probably know this already but: you can get the same effect with shading (as in shaders, not shadows). shading can be more efficient memory AND storage wise in a lot of cases, but it is not necessarily more efficient than the hull technique. Plus you already did one technique so you'll probably want to stick to that one. PS - I really hope you were joking by saying 5GB is lightweight. If you keep going with your techniques to save up storage I doubt your game will weigh more than 500 MB, sound and textures included, unless you make as much content as a AAA game, or if you are THAT guy that makes 30 000 items with unique textures like terraria, or if you make one part of your game very un-optimized storage-wise (using a game engine like unity for example might make unnecessary mass, and make my point invalid, since a blank 3D game in unity already weighs a ton).
Great Video. The look isn't bad but it would probably impact visual clarity a bit. The "low-res" feeling seems like it would make it harder to see detail in objects. If you want to have some sort of outline, you could look how BL3 does it but I think they drew all of the outlines. :)
I really love bold colors with cell shading, it's a nice visual style that gets overshadowed by the hyper-realism that is dominating fps games. stylization and a unique look will help a game stand out a lot more
You should do some quick and dirty backend dev videos. Maybe not even like “code along” or anything but just running through the structure. Would be very interesting!
You should add cell shading, like shadows in Zelda BotW. Instead of going from bright to dark in a gradient, just check if the shadow is dark enough, and if it's dark enough after a certain distance from the bringht area, make every point beyong that point max dark.