BEAST SOCKET (Procedural Monsters)

@RujiK: No problem. The new tileset looks great, and your tools are awesome looking as usual! Cool stuff!

I kind of asked you before, but is there an easy way to get a list of all the objects/tiles/etc in my game during run-time? I really want to start developing the tools for my game, too, even if it's simply pulling up a list of objects and dropping instances and/or tiles into my room during run-time. The built in level editor is much better in GMS2, but still doesn't compare to something that's "live" like the tools you have here. Very cool stuff!
 
N

nnynas

Guest
@RujiK oh wow I just came across this thread for the first time and realized instantly, I had seen this somewhere before.. until I remembered following you on twitter a while ago. This is looking great, nice to know it's developed with gamemaker!

I think this will become something good, imo way better than the project you put on a break. Good move! :)

</OT> <!-- that the whole msg was :D -->
 

RujiK

Member
@GMWolf Glad you like it :)
@nnynas Hellow twitter friend! Welcome to the thread and thanks for your compliments :)

@RichHopelessComposer In my case whenever I create an object I add it to some kind of list. Like an NPC has this in his creation:

Code:
ds_list_add(global.unit_list,id); //ALL movable units. Players, NPC's, boxes, etc
ds_list_add(global.npc_list,id); //only NPC's.
And whenever I add a tile, I add it to TWO ds_maps:
Code:
    tile = tile_add(_backg[_index],_pos,0,_wid,_height,xpos,ypos,_depth);

    ds_map_add(tile_ID_map,pos,tile); //So I can search the tiles by ID
    ds_map_add(tile_pos_map,tile,pos); //So i can search the tiles by position
Because the tiles are not placed in standard 16x16 grids or whatever, tile_get_x() and tile_get_y() aren't very helpful so I need to record the "real" coordinates.

Custom editors can be a lot of fun and they really aren't that difficult to make if your game is simple like mine. Feel free to PM me if you have specifics, I owe you for that art post :p
 

RujiK

Member
☁ ☁ COTTON CLOUD ZONE ☁ ☁



NEW: butterflies. (and lots of migrating birds)


NEW: Big bear. This fatso shoves you far with his belly bounce.


And a gameplay change. Previously, you slowly aimed your throw like yo:


BUT NOT ANYMORE! AUTO AIM for super fast gameplay!


When you press throw, it locks on to the nearest target and releases the ball when you release the button.


The reason for the change was that manual aiming slowed down the gameplay and it was hard to hit anything that wasn't super close. The view made judging angles diffult and near misses were frustrating.

The sky islands in the background of the first picture took a long time to draw and you probably didn't even notice them. DID YOU??

Tell me they are pretty. Feel free to also tell me I am pretty.
 
☁ ☁ COTTON CLOUD ZONE ☁ ☁



NEW: butterflies. (and lots of migrating birds)


NEW: Big bear. This fatso shoves you far with his belly bounce.


And a gameplay change. Previously, you slowly aimed your throw like yo:


BUT NOT ANYMORE! AUTO AIM for super fast gameplay!


When you press throw, it locks on to the nearest target and releases the ball when you release the button.


The reason for the change was that manual aiming slowed down the gameplay and it was hard to hit anything that wasn't super close. The view made judging angles diffult and near misses were frustrating.

The sky islands in the background of the first picture took a long time to draw and you probably didn't even notice them. DID YOU??

Tell me they are pretty. Feel free to also tell me I am pretty.
Beautiful as always. Good call on the auto-aiming!
I'm so excited for this game :D
 

CMAllen

Member
☁ ☁ COTTON CLOUD ZONE ☁ ☁



NEW: butterflies. (and lots of migrating birds)


NEW: Big bear. This fatso shoves you far with his belly bounce.


And a gameplay change. Previously, you slowly aimed your throw like yo:


BUT NOT ANYMORE! AUTO AIM for super fast gameplay!


When you press throw, it locks on to the nearest target and releases the ball when you release the button.


The reason for the change was that manual aiming slowed down the gameplay and it was hard to hit anything that wasn't super close. The view made judging angles diffult and near misses were frustrating.

The sky islands in the background of the first picture took a long time to draw and you probably didn't even notice them. DID YOU??

Tell me they are pretty. Feel free to also tell me I am pretty.
You know, it may not be intended, but if you lengthen the wings a bit, you've also got flying fish to go with your birds. Just for additional environmental ambiance. Or maybe a mechanic, like a temporary fish bridge/platform. It would be thematically appropriate for the game I've seen so far.
 
O

orSQUADstra

Guest
Locking on nearest target surely make the gameplay faster, but in all honesty I personally don't like that kind of gameplay. I once played an FPS game where it autolocks onto enemies and literally all you have to do is press left mouse button and WASD through the whole game. It would be neat if the game would include a switch or an option to toggle autolock on/off :D
 

RujiK

Member
@YanBG If pink lines look like your pee, you may want to go see a doctor. Just sayin ;)
@CMAllen Flying fish is a good idea. It especially matches the floating island level since there is an ocean in the background.
@SnotWaffle Studios :D
@orSQUADstra I don't like autoaiming in FPS's either, but this isn't really comparible. The controls are just so clunky and the perspective makes it very difficult to judge angles. It's more comparible to kirby's dreamcourse than an FPS:

Kirby's dreamcourse would be almost impossible if there were moving enemies that try to kill you. The aiming is just too slow and clunky for any quick attacks. I hope you're not too dissapointed, but I don't plan on having a toggle since the enemies will be built around the auto-aim mechanic.

MANGROVE ROVE



And in motion:


Two New goofballs. I am quite pleased with the frog.


Jumpy Boys. (Bitey Boy is extra mean)


Cool transition effect!

Now that I have the "bones" of the transition code in place, making different ones should be quite easy.

Did you notice the sweet mountains in the background? They noticed you.


How I draw a mangrove tree FAST! I can draw these bad boys in like 10 minutes now.


Peace out! Me and my boys are off to a party. Feel free to let me know what your favorite herbivore is your or thoughts about the game.
 

RujiK

Member
@CMAllen Water creatures are on the todo list :p
@YanBG Like @Zek said, It was only an effect for the beginning of the level.
@Carloskhard Thanks! I've been making good progress but it seems like the more I make, the more I need to do.

Okay, so I have loaaaads of updates, but I'll just post some of the biggest stuff for now.

GAME DIRECTION CHANGE:
The game WAS going to be a 2.5d platformer with a small amount of time spent in a main hub area.
The game IS going to be interacting with NPC's in a town with a small amount of 2.5d platforming.

Why the change?
I just wasn't really liking the game to be honest. I'm not a big fan of 3d/2d platformers and I didn't like what I was making. Helping NPC's and making friends in a game appeals to me much more than just platforming

Did you waste a lot of work?
Almost none. Some AI work will need to be tweaked but almost everything can still be used.

Here are some pictures of the Town I've been working on:



If your naughty the police will get you:


An Ivy cottage:


And a timelapse of BUILDING it. (Drawing assets is not shown obviously)



And a weird bug. (Gif is sped up)

Every time a lift changed direction that the player was riding, the player was shifting over by about a tenth of a pixel. Ride for a long time and eventually you fell off. Rounding floating points were to blame. It's fixed now.

I still have loads of new content to show but I will hold off until the next update. Updates have been slow but work has not! See you soon.
 

Joe Ellis

Member
Nice, I really like the color tones, they're like a mixture of pastely but vivid. Looks quite refreshing
I saw this game a few months ago but didn't bother commenting cus it looked "errr, not sure", but now it looks really cool
I like the new changes with the game style aswell, it sounds more original now,
plus the art was always cool to begin with
 
F

FROGANUS

Guest
Wow this keeps looking awsome!

How much will shooting be emphasized in context of gameplay? The physics look fun for experimental throwing of things at things.
Would it be worth it to keep manual aim intact, perhaps as a secondary option for trickshots and/or environmental interaction, etc?

Also that bear is cool. He has a 'slightly suspicious' vibe, heh. I feel like the animation for the belly bump could be just a little more embellished/indicative.

Keep up the work!
 

MeBoingus

Member
@CMAllen Water creatures are on the todo list :p
@YanBG Like @Zek said, It was only an effect for the beginning of the level.
@Carloskhard Thanks! I've been making good progress but it seems like the more I make, the more I need to do.

Okay, so I have loaaaads of updates, but I'll just post some of the biggest stuff for now.

GAME DIRECTION CHANGE:
The game WAS going to be a 2.5d platformer with a small amount of time spent in a main hub area.
The game IS going to be interacting with NPC's in a town with a small amount of 2.5d platforming.

Why the change?
I just wasn't really liking the game to be honest. I'm not a big fan of 3d/2d platformers and I didn't like what I was making. Helping NPC's and making friends in a game appeals to me much more than just platforming

Did you waste a lot of work?
Almost none. Some AI work will need to be tweaked but almost everything can still be used.

Here are some pictures of the Town I've been working on:



If your naughty the police will get you:


An Ivy cottage:


And a timelapse of BUILDING it. (Drawing assets is not shown obviously)



And a weird bug. (Gif is sped up)

Every time a lift changed direction that the player was riding, the player was shifting over by about a tenth of a pixel. Ride for a long time and eventually you fell off. Rounding floating points were to blame. It's fixed now.

I still have loads of new content to show but I will hold off until the next update. Updates have been slow but work has not! See you soon.
Firstly, might I just say, this game looks AMAZING! I saw the initial posts (up until the hat stacking) when they first came out. I forgot the name of the thread, but I've sorta been searching for (read 'hoping it would pop up somewhere for me, because I'm too lazy to seek out') this game for a while now.

Secondly; I think the change in concept will do this game well. I was a big fan of the concept + style of the game as a platformer, but an isometric RPG version of this game looks even better. I wish you the best of luck! Will be following the project closely from here on out. If/when this releases, you can count on my purchase/download!


A few concepts:
  • It'd be nice to have some kind of endgame. I don't know if this is designed to have a story-line or ending yet, but it seems like some kind of overarching story would be a nice addition.
  • You just gotta keep the hats. This project was fine at first. Just fine... not fantastic, not life-altering, fine. And then you added the stacking hats. I would gun down my own kin. I would perform unspeakable, unsavory, unequaled acts... for the hats to remain in this game. Even if they have nothing to do with anything. Even if you could just acquire hats and stack them on the 'lil sock to absolutely no gain. Hats. Yes.
  • I don't know why, but this game makes me think of old Point and Click adventure games from the 80s-90s era of gaming. While not the EXACT same concept, it may be interesting to include some elements from those genres. I.E. Using items to solve puzzles, combining items, collecting items, the dialog system, etc, etc. Just a concept.
  • +500 points (if there's a story) and the characters find out they were being controlled by a pair of hands (the player) the entire time. 'Ya know... sock puppets, hands. I'm sure you see where I'm coming from.
 

RujiK

Member
@Toque @frd @pixeltroid Thanks my dudes!

@Joe Ellis Glad the game is more appealing now :D

@FROGANUS Throwing will be the main fighting mechanic. I'm still undecided how much actual fighting will be in the game though. Also I hadn't thought about using the manual throw for world interactions. That is a good idea which I will have to write down and keep in mind.

@Liam Jacobs Always good to get a new fan! :) For your questions:
1. Will 100% have a story.
2. Hats 100% Yes.
3. There will probably be a few minor puzzles to mess with. Undecided on what type though.
4. Undecided, but some future changes to the game may make this idea impractical. Cool idea though.
Thanks for your enthusiasm!

Plot twist!! Houses now actually have something inside them! (Wow!!!!!!)



Since I had NO furniture or interior tiles drawn, making them all took a LONG time. I am slow artist. I hope you like them.

TRANSITION TIME!

Typically RPG's tend to fade the screen to black when you enter a house. I wanted to do something more visibly appealing so I skipped the black and did a straight scene-to-scene fade using the application surface.


This is KIND OF cool, but nothing to write home about. So I made a weird texture like this that blends from alpha to solid:


Then I used a shader to use that texture as an "Alpha-look-up-table" of sorts. The result looked like this:


This is definitely more original, but I didn't like the hard edges between the two transitions. So, with a little tweaking and blending of the edges, here is the final result:

The gif compression doesn't do it full justice. Here is a still image to better show the blending:


And the great thing about this method is that I can make different transitions with no coding changes. All I have to do is make a new blend texture! That's pretty cool!

Thanks for your comments dudes!
 

Nocturne

Friendly Tyrant
Forum Staff
Admin
Looks awesome, but I actually prefer the "hard edge" look! It is way more original and eye catching, fits the pixel graphics perfectly, and reminds me of someone washing a window or wiping something away. The other version is nice enough, but doesn't quite have the same impact and nice "feel", imho.
 
Looks awesome, but I actually prefer the "hard edge" look! It is way more original and eye catching, fits the pixel graphics perfectly, and reminds me of someone washing a window or wiping something away. The other version is nice enough, but doesn't quite have the same impact and nice "feel", imho.
Very much aree with this. Instead of fading, I'd just speed up the hard transition by 50-100%. Matches the aesthetic better, and both fading ones are vaguely "confusing" (for lack of a better word, lol) and unpleasant looking to me.

I do like the hard transition though. Very neat!
 

Joe Ellis

Member
I'm looking forward to seeing more updates with this, I was actually just thinking about it out of nowhere, that's a good sign I guess :D
Also I love the view style, I tried looking up what it's called, in cinema 4d it's called "gentleman" but I looked up that and it had a load of pictures of Donald Trump. After refined search I found names like Oblique, Cavalier or Cabinet, well who cares anyway, but the main difference is that it's not standard isometric, which is refreshing.
 
Last edited:

RujiK

Member
@ThatScaryChick Thanks! I'm hoping to have at least a little bit of a female audience so I appreciate any feedback from women.
@EvanSki Thanks! I am also hoping to build an audience among raccoons so I appreciate any feedback from vermin.
@Joe Ellis I've never heard of cabinet or cavalier perspective. I'm not sure which it is either. Glad I've carved a spot in the back of your brain :D

@Nocturne @RichHopefulComposer Ack! the "Hard" transition is definitely more fitting for the pixel art, but I'm not sure I'm ready to ditch the newer transition. It looks a lot better with 32 bit colors and fullscreen than in the gif format. I'll keep your comments in mind though. Maybe I can find a compromise or just use both at different times.

Yo yo yo:


Using the new GMS2 3d functions, I have rebuilt the engine to be truly 3d. If you have a 2d brain, prepare to be shook:



Since the art was designed to be used in a 2d world, everything breaks if the camera turns or tilts. I could fix this, but it would mean basically redoing all of the art to be mapped to cubes. I have no plans for this due to the work that would be needed and the small return value of a swiveling/tilting camera.

I've never coded in 3d so the transition from GMS1>2 took around 2 months. I needed to change the tiles, the NPC-sprites, the shaders, the view, and get rid of every draw_sprite or add_tile functions. It took a LOOOONG time and was very frustrating but it's just about done now.

3d is really weird to me. Notice how there is no longer an absolute front or back to a sprite since they are warped in 3d space. It's possible to be inside of sprite now.


The chunking engine is no longer tile based, but vertex_buffer based. I batch chunks of 4x4 "tiles" into a single draw call. I thought this would be slow, but surprisingly it's more than twice as fast as tiles. 2d Depth sorting is really a CPU killer. Here is a gif of the new chunking:


Finally, here are a few new buildings I've been working on. I put a lot of effort into making the signs as goofy as possible.




Thanks for your feedback! It's the only way my brain will give me dopamine anymore.
 
@RujiK: To be clear, I don’t really mind the soft edges on your preferred fade. I just don’t like how it crossfades at the same time. Crossfade or wipe are both good. Crossfade AND wipe looks weird to me. :x

I think I might still prefer the hard edge for the wipe, too, but that wasn’t my main concern!
 

GMWolf

aka fel666
Yes! Yes yes yes!
Actually using the hardware to do things! Nice!
I would suggest you still do a bit of sorting to draw things front to back so you don't end up in overdraw hell.
 

RujiK

Member
@KPJ @pixeltroid Thanks guys!
@GMWolf I have culling enabled and I draw the screen from back to front. I THINK that's good enough...
@RichHopefulComposer Ahh, I misunderstood you then. It looks better in 32 bit colors fullscreen but I see where you are coming from. Thanks for the clarification.

YO YO YO. An update within a week!? It must be super cool.

For the past week I've been experimenting with "realistic" looking water that looks okay with pixel art. For reference, this is what is used to look like:

The water was opaque for technical reasons. Since this was back when the game was truly 2D, the tiles had lots of depth issues with the player. This is what it looked like to walk around in water before I added all the smoke and mirrors to hide it:


Transparency would have made it very difficult to hide that the water is actually made of square chunks.

But now that I'm truly 3D and the water is a literal 3D plane, the GPU does all the depth magic for me and I can do whatever I want!

At first I was just going to update the water texture with transparency. BUT I'm heavily inspired by SNES era games on my art decisions, and I've noticed some SNES games don't really use pixel art for the water and they still look good:


So I contemplated my existence, and wondered how far away from true pixel art I can take the water before it starts to look like it doesn't belong? Hmmm!!? I started with some noisy textures and clamped it to 2 colors so it would look "Pixely."

Yuck! That looks boring!! How about 3 colors?

Yuck! That looks terrible!! So I yelled, "To Heck with the pixel art limitations!!!" and made this:




I'm not sure where the line of "too realistic" is though, so I would appreciate your feedback. Is the water too realistic for pixel art ? Does it clash!?

(Also if people want some of the technical junk I can post some water progress gifs. Let me know if you are interested. I'm almost at the image limit with this post.)
 
Last edited:

GMWolf

aka fel666
I think the water looks great!
Yeah if you look at it too long you notice its not really pixel art but i dont think its a bad thing.
@GMWolf I have culling enabled and I draw the screen from back to front. I THINK that's good enough...
thats just the Graphics programmer in me being pedandic but, draw things FRONT to BACK!
It probably doenst matter though.
 

asollazzo

Member
The water looks awesome, i have a tiny nitpick though, when the splashes 'hit' the water they seem too round for the view angle, shouldnt they be more oval ? or maybe if they are already oval, warped to fit the isometric angle ?
 

RangerX

Member
Water looks absolutely awesome.
But think about bigger and more splashing. Or go to the beach and jog in shallow water. Real water splashes more than in videogame in history.
Videogames are always "undersplashing". Be different :p
 
(Also if people want some of the technical junk I can post some water progress gifs. Let me know if you are interested. I'm almost at the image limit with this post.)
I'd love to see the technical stuff! Super curious how you went from the first water GIF to the finalized water.

Is the water too realistic for pixel art ? Does it clash!?
I think the water fits really well. The "wave" effect looks great (how it "warps" anything under the water). The small occasional highlights/sparkle effect on the water's surface is great. Also minor but great is how the water has that thin highlight effect on things sticking out of the water, or at the "edge" of water.
 

Ninety

Member
That's some of the best video game water I've seen in a long time.

Also, I might be out of the loop here, but why'd you decide to transition to 3D so far into development? Seems like given the unusual perspective there'd be a lot of hacky workarounds involved.
 

NightFrost

Member
The water looks really good, and I think it works well with the pixelart. One reason being, the distort offsets with full pixel values so single pixels remain sharp (as opposed to blending neighbouring colors). I guess this was the shader stuff you were asking about earlier. Are using perlin noise for the distort, and also drawing the sun reflections where the noise is near maximum value? The only minor nitpick would be where the waves are drawn at top and right edges, when the wave dips low you can see the straight edge of the water plane. But I've no idea how to correct that without going for something complicated (in other words, it is not cost-effective to fix that visual).

Edit - didn't notice you had said "noisy textures" so that answers my question about perlin...
 

Micah_DS

Member
I've been silently following this project for a while. It's so beautiful and cute! You've been doing really amazing work. I love it. I also like the informative updates.

I like the water, btw. I seems to fit in well enough to me. It's moving a bit much for standing water, but it looks pretty.
 
R

Red Phantom

Guest
In my honest opinion the water looks great and doesn't clash!

I agree with RangerX that you could make the splashes bigger (if you want, up to you, don't have to do it).

I also agree with this
I think the water fits really well. The "wave" effect looks great (how it "warps" anything under the water). The small occasional highlights/sparkle effect on the water's surface is great. Also minor but great is how the water has that thin highlight effect on things sticking out of the water, or at the "edge" of water.
Keep going and keep up the amazing work!
 
That water is absolutely mesmerizing! I just can't stop looking at it. The distortion and movement of the waves is about as close to perfection as I can imagine. I dare say that it's WAY better than the effects you were trying to emulate. This opens up a lot of creative opportunities in your game development. The environments are great to look at and I tend to get lost in your screenshots.

I'll be keeping a close eye on this! Fantastic work!
 

Joe Ellis

Member
It all looks beautiful! and I love the new water graphics, I don't think they look too realistic cus its kept in pixels rather than them being bent in higher res.
I think they are the best water graphics ever, I wanna actually swim around in it
 

RujiK

Member
@GMWolf Ack, rendering front to back now. Thanks.
@asollazzo You're right. Ripples have changed now. Thanks.
@Bladestorm Games I've just about finished the water so a technical post should be coming pretty soon. Thanks for the compliments too!
@NightFrost All of your assumptions are correct. I also could not think of an efficient way to truly move the water's surface. Thanks!

@Ninety Thanks! I switched to 3d when I ported from GMS1>GMS2. Tiles are handled completely different in GMS2 and I would have needed a custom made tile engine. (FPS went from 320 to 3 when I first started in GMS2.) Also the depth of the tiles was a huge headache. 3d has been much easier in that regard. There are some hacky workarounds for pseudo 3d, but it's still much easier than making depth work in 2d. I'm not sure I'll ever go back to 2d to be honest. 3d is too fun.

@Lonewolff @Morendral @Micah_DS @Joe Ellis @Dogwithswords Thanks guys! Glad you like the water. Your words are very encouraging.

...

Feedback for the water was overwhelmingly positive:


I am now the #1 post of all time on reddit's r/pixelart and r/gamemaker. Twitter also gave me a zillion comments and over 11k likes. Feel free to call me Mr. Bigshot henceforth.

So I've spent the last two weeks finishing up water.

First up, I added better player-to-water interactions. RIPPLES:

Also there are three water types. DEEP/dark, NORMAL, and SHALLOW/transparent. Normally they will be blended together but I've left the top of the water ublended to better show it off. (Notice the squares at the top of the water pool)


SPLASHES have been set to the max if you jump up and down while swimming. (@RangerX and @Red Phantom I hope you approve.)


And some global water settings with a cool GUI:


And of course:

(Drumroll please)

Waterfalls!


Thanks for your feedback guys! My ego grows after reading every one of your comments. Soon my ego will be unstoppable.
 
@Bladestorm Games I've just about finished the water so a technical post should be coming pretty soon.
Yay! I can't wait.

Waterfalls!
THIS is just insane at first glance... second glace... and forever glance, hahah.

This just blows my mind that this stuff is possible hahah, it looks SO GOOD, who knew one could make pixel water look so good and visually it flows so well with each of the parts of water.

Awesome job and congrats!
 

Bentley

Member
@Toque @frd @pixeltroid Thanks my dudes!

@Joe Ellis Glad the game is more appealing now :D

@FROGANUS Throwing will be the main fighting mechanic. I'm still undecided how much actual fighting will be in the game though. Also I hadn't thought about using the manual throw for world interactions. That is a good idea which I will have to write down and keep in mind.

@Liam Jacobs Always good to get a new fan! :) For your questions:
1. Will 100% have a story.
2. Hats 100% Yes.
3. There will probably be a few minor puzzles to mess with. Undecided on what type though.
4. Undecided, but some future changes to the game may make this idea impractical. Cool idea though.
Thanks for your enthusiasm!

Plot twist!! Houses now actually have something inside them! (Wow!!!!!!)



Since I had NO furniture or interior tiles drawn, making them all took a LONG time. I am slow artist. I hope you like them.

TRANSITION TIME!

Typically RPG's tend to fade the screen to black when you enter a house. I wanted to do something more visibly appealing so I skipped the black and did a straight scene-to-scene fade using the application surface.


This is KIND OF cool, but nothing to write home about. So I made a weird texture like this that blends from alpha to solid:


Then I used a shader to use that texture as an "Alpha-look-up-table" of sorts. The result looked like this:


This is definitely more original, but I didn't like the hard edges between the two transitions. So, with a little tweaking and blending of the edges, here is the final result:

The gif compression doesn't do it full justice. Here is a still image to better show the blending:


And the great thing about this method is that I can make different transitions with no coding changes. All I have to do is make a new blend texture! That's pretty cool!

Thanks for your comments dudes!
That is a very cool transition!

I am very new to shaders. I think I could get the alpha value of a each pixel. But how did you draw that over time? Do you save the results of the shader in some way, and then draw the new image over the old?
 
There are two WIP games on these forums I've ever legit been jealous of:
  • A project that was basically a shock-value violent Kirby game, right as edgy indie games were the big YouTubers' main content
  • Your game for the beautiful pixel art
Keep up the stunning work!
 
Top