Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines
(+1)

Awesome visuals paired with cool fast paced action gameplay !

I really like the smooth 3D mech models as sprites and the overall minimalist environemant makes for a very sleek and futuristic style :D

The gamefeel is also insanely good, this is very fast paced though maybe a bit too much at times :p

the bots offer quite a challenge as well even if at times it’s a bit unfair that they can shoot you from offscreen, but still manageable non the less and quite fun to fight.

The weapons are also very punchy and satisfying and i liked the quickswap mechanic for the 2 weapon slots, the fact that you can choose your loadout is also a nice touch and i can only imagine how cooler this could get with more choice for each slots for even more combinations.

I didn’t try it but i also gotta applause the fact that you made an online multiplayer component for a jam game O_o that’s just insane !

The only thing missing i feel, if i had to nitpick, would be some background music maybe. Other than that solid entry, you did great :)

(3 edits) (+1)

Duude, thank you for the comment! I appreciate it very much)

I chose these visuals for multiple reasons:

First, it's 2D which means I can get away with ancient level of tech (the graphics module for example can only output textured 2D triangles - not even tinted and only from a single texture and the math in gameplay is super primitive compared to what had to be done for 3D) and the cost of asset creation, processing and importing will be near-zero (all had to be done by hand in Go in which the dev server was written. I did not want to spend too much time with it and also doing full rebuild is instant - currently its under 200 ms for ~1000x1000 atlas. I had to cache sounds though 'cause I'm using FFmpeg for resampling and it takes ages for a single file). I think hot reloading was one of the few things that helped my significantly during the jam and kept me sane.

And second, I was fascinated by Project Landsword - it was the second time I've seen a game that was that good and used sprite stacking. It nailed the idea for me that this kind of game can be really cool. The first one was Racing Gears but it's a GBA game and only the cars in it were sprite stacks. What's interesting is that the cars would tilt when going over ramps which was appearantly done with 2x2 matrix transformation for all layers. I don't know any other game that used this effect. And also Landsword uses sprite stacks for almost everything: mechs, buildings, signs etc. It also has sh*t ton of particles. That accumulates to 1000+ sprites on the screen at each moment which my 10 y.o. laptop can't handle for some reason. Still that sparked that "I can do that myself and better" thing which helped with motivation.

By the way, the "smoothness" was sort of an issue for me: it looks good for objects inside the game world but not for UI. There are no labels for bars in the HUD, like HP or EN, and the bars themselves are rectangular and not triangular  (with 1 pixel cut out at the top on both sides of each bar) because the renderer did not support single-pixel precision / integer positioning (or like floating point truncation for UI layer) which meant I could not draw anything 1-3 pixels wide consistently - the lines would randomly get stretched or squished.

Additionaly, in the early stages there was a problem with texture bleeding when tiles would have their edge pixels sampled from a neighbouring texture. So I had to add padding and repeat edges for all textures in the atlas.

About the game feel: I wanted to make a twin stick shooter that was fast. Like as fast as AC4 was compared to the previous games. I tried to find these kind of games on steam but couldn't. I think it feeling too fast is the issue primarily with the map being too small and not the controls themselves, although they are not that great, especially the dash - it's just a lerp between the start and end points which is too primitive IMO. Also maybe the game resolution is too small for these speeds - only 240x160. At the start I wanted to add a 3rd mode of movement - boosting so you could simply roll around, release D-pad, press dasg button and press the D-pad again to slowly (compared to dash) accelerate to higher speed. Like walking, dashing and quick dashing in AC6 (from what I could understand, I never played it). But my programming ability let me down and niw the game only has a crappy dash.

Yeah, the bots were worthy of more attention) At some point they did shoot you only if they were on screen but that felt too easy. I wanted to fix them shooting at you from far away being a surprise by adding markers at edges of the screen but didn't have enough time. But yeah.. I don't know yet what to do with this.

And oh yeah! Before I nerfed their bullet speeds, they would annihilate you immediately if you weren't going in circles)

Swapping weapons was from AC1 (I only played 1st gen) and Nuclear Throne. Kind of have to have it when the whole mech thing is mainly about customization and variety. I tried with the time that I dedicated to that to make the weapons different from each other, especially with GM (series of shots and the spinning radar). I'm glad it was fun) Actually I wanted to add repulsion for enemies but forgot ¯\_(ツ)_/¯

Thanks man) It was the main selling of the original idea: ~ online PvP duels ~. But I failed miserably again with trying to implement movement smoothing. Plus the way I chose to transfer packets was sending them over WebSockets which I was afraid would suffer from flooding which would baloon RTTs. So I'm sending them in a ping-pong fashion: the server sends game world state only after recieving a packet from the client. The same goes for the latter. I don't know actually how much of an issue it is because the raw ping itself is pretty bad - around 150-200 ms. I will try to use WebTransport, i.e. UDP for websites, for my next project - a proper competitive sailing game in the same style, because alwaysdata's proxies that handle SSL for you makes life just so much easier (you would have to have a domain and your own signed certificates for WebTransport to work IIRC). But I haven't tried it yet so I don't know for sure.

Actually, setting up a simple game-server connection over websockets is almost trivial. You really only have to check the origins but apart from that it's just the example code everywhere. Now I wonder why there are so few online projects when it is so easy to set up one. Also making a single-command deploy was a little rough on the edges, but not something complicated either.

I wish I could do music too! But I am a total zero in that. There is sound in the game only thanks to jsfxr xD. I really do find anything creative much much harder than programming - I get completely lost and demotivated. So I try to compensate with the number of lines of code)

Sorry if my english isn't pleasant to read. Thank you again for the review. That really makes me think that all of this was worth it.

As a sidenote, I've seen your entry before the deadline but haven't played it yet. Will fix that when I get back from work)

(1 edit) (+1)

No worries it was a cool entry like i said ^^

That explains the look ! Well you’ve nailed the technique cause i honestly thought it was the other way around where the mechs were actual 3D models made to look like some oldschool spritework for fake 3D to avoid all the extra work that such methods actually require :O mad respect.

I’ve seen a few stuff a while back talking about the stacked sprites techniques,and i’ve always loved how some older games(especially those aiming for less powerful hardware)and i’ve seen that such oldschool techniques are still quite hard to pull off with modern engines, but it’s cool you’ve pulled off the effect cause that definitively gave the visuals their charm, handling everything in a 1000x1000 texture atlas seems like a lot of work still O_o I take your word for it cause i’m nowhere near as knowlegable as you seem to be on the more technical stuff, especially with sound (though i’ve heard fiddling with FFmpeg seems like a huge pain)

I still haven’t found the time to try it myself but yeah Project Landsword does seem amazing so i totally get the fascination/inspiration, i didn’t bring it up in the review but in hindsight the influence is clear with your 4 legged “roller” based mechs, though you did really added your own flair to it for sure, also funnily enough in terms of pure visual style your game does really have that GBA feel to it. And holy cow 1000 + sprites to handle the stacking and rotations effect does seem like a lot to handle even for modern systems O_o though again i’m not that well versed in the technical side of things to know all the ins and outs of it, so your explanations are quite interesting i gotta say :)

The AC series do seem like a nice inspiration to have as well, and i’m in the same boat here where i haven’t have the chance to play most of the series myself, so i’ve got no point of comparaison for the gameplay :p

Regarding the online component, i’m sure it’s probably fine though, it’s already ultra hard to aim for something like that in a 2 weeks long gamejam especially considering this setting isn’t easy to get enough players connecting together to a server to get a game going. But i’m also saying this as someone who doesn’t have much in terms of knowlege about networking(total noob on that front)so… that’s that XD But i gotta say that the gameplay you have, in either pvp, or teams of maybe 4vs4, or some pve online co-op would probably be a blast to play !

Still on network, but i found funny what you’ve explained about music “I really do find anything creative much much harder than programming - I get completely lost and demotivated. So I try to compensate with the number of lines of code” to be the exact opposite problem that i’ve had but with advanced technical stuff(if that makes sense :p) where most of what i personally did i tried to output my best art presentation polish etc… to hide the fact that i can’t really do very advanced ai stuff or cool online multiplayer and many other fancy actual competent programmer stuff XD

So short awnser to why you wondered why there weren’t more online multi games made by indies, probably cause of dum dumbs like me :D

Don’t worry, i’m not a native english speaker so my english is surely quite bad so i can’t judge anyone on that front, and i’m glad you thought your efforts on your game were worth it because they absolutely were !

And no problem dude ! you can give it a try any time you can, i’m quite curious what you’ll think of it, hopefully you won’t find it too terrible :p

(5 edits) (+1)

Yehehe, I'm glad)

The mechs were, in fact, 3D models, just in MagicaVoxel. Exported as slices.

Idk, maybe it's not hard but unnatural to something like Unity. There you're used to work with materials and meshes and objects etc. Here, in the wild you just render images on top of each other and they look pretty)

It's not really. I have a folder with all my sprites, dev server packs them into an atlas and also creates name-rect JSON dictionary I access in code as "assets.textures['texture-name']" and its just a region in the atlas. I just checked and it's 870x1130. I was cautious of the atlas size because I wanted the game to be playable on phones where WebGL has a limit on maximum texture side length of 4096 or so, at least on my phone, and I only have 1 texture (and as a result everything renders in a single draw call). I know that cause I reached it once and couldn't tell why the game was crashing.

I think it's not as complicated as it sounds. I'm doing (and know tbh) only the basic things in the area or the way of writing a game that I'm choosing (in short - not using any engines or libraries) and when I hear that it's "too technical" (what my ego hears is "cool") I get impostor syndrome and feel like a fraud, but that's just a character issue. It limits my tools and forces me to spend most of the time typing. Maybe it's like making notes on paper instead of a laptop - it's less practical or efficient but makes sense if you like it that way. And for now I think i prefer that more - learning what menus to click or what esoteric (compared to general programming) APIs to use just doesn't give me satisfaction. I also may be in that "wanna rewrite it from scratch" phase and some day will outgrow it (as in grow into something else, not necessarily from something worse to something better). But again, on my laptop Unreal crashes and Unity is barely usable. Godot does work but I havent' given it much attention.

FFmpeg is easy when you you don't have to read its docs and can just ask google search thing what arguments to give it. For me it really is just a thing that converts anything into anything else. I'm using it to resample WAVs into mono 22kHz to save space, then concat everything into a single MP3.

Like hell I'd animate its legs xD

About Landsword... I did count the sprites. I was that one excited idiot who posted game's source code into project comments suggesting the dev to render buildings as single prerendered sprites without realizing that each of the layers tilts relative to the camera mimicking 1-point perspective... yeaa. Still amazed by it. Though I'm afraid it will be forever a prototype because the author was spending time on weapons and maps and not core gameplay or like, the plot or the thing I can't name that brings the levels and weapons and enemies together into a cohesive experience or makes it appear like one. But maybe it's  good for it to be abandoned at some point. It would look great in CV I'm sure.

It's not like thousands of sprites is an issue, I think the problem is the legacy version of GameMaker the dev is using or even the fact that they're using GM at all (my personal feeling).

Yeah, I believe this form has potential. However I'm not seeing anything like it so maybe there's a reason it wouldn't work. I don't know enough about networking either) I only read a few articles and what google search AI thing spits out. Gotta work on that.

Well, luckily programming doesn't require judging by the gut that much) Or training the eye.

I think there's more to find in the idea of aiming for doing 80% with the 20 that you personally are capable of and it doesn't require a lot of hard skills, just using them accurately. At least that's what my idea of "how to make games when I can't do sht" currently is. I think a good example of that would be Curse of The Arrow or really anything made with PICO-8. It's a constraint the point of which, I guess, is to free the energy you would spend on art or programming and make you spend it on things you wouldn't normally give enough time to so that the game overall is more complete and round and therefore enjoyable.

Nah, It's probably because people think it's too complicated for them. We can do really cool stuff, just gotta know where to put the effort.

Well, I couldn't tell you aren't one)

Absolutly not, it isn't. I had an issue with performance but it's Godot and my browser, nothing to do with the game. I did leave some notes on potential (from my POV) imporovement though, but it might be totally irrelevant if you did decide not to focus on things I was talking about. I did find it fun, especially the bossfight).

(+1)

Oh dang well still impressive non the less i didn’t know you could do stack sprites with Magicavoxel ^^

Well i can only speak from my own POV but from what i understand, full pure programing with no engine just an editor and using a specific engine can be quite different and depends on each person’s perferences and skills.

Yeah platform limitations can be a pain sometimes, i know i personally always cross my fingers for WebGL exports ever since i started 3D cause i didn’t really know how limited it really was and probably just got lucky untill that point. But from what you say you sure seem to know yourself around optimization :o

Honestly you shouldn’t feel impostor syndrome :( for starters, you made some pretty cool stuff on your entry, and beleive me, to me “too technical” really means that you cool true programmer guys are out there warpint the Matrix B) while dudes like me(but most likely just me tbh :p)type babby scripts to make pixels move.

From what little i know, in terms of audio i live by the OGG format now, at first i did it out of necessity cause Godot didn’t support Mp3, but even though it does now, i noticed the file size of OGG audio is like way smaller even smaller than Wav(at least this time when i compared the sfx i had in wav and ogg), and i couldn’t hear any quality difference so i never looked back, though i’m not sure if it plays nice with fully custom game tools and such but i’m sure it can work.

Haha everything about walk cycles is pain and you’re absolutely right to avoid them, keep these legs fixed XD

Dang well if you contribited you’re definitively not an idiot that is certain O_o though i didn’t know all the ins and outs about the project i hope the dev didn’t abandon it cause it looks so rad :o

Also you’re probably right about just having the will to put in the effort, i know i personally started from zero on the programming side of things but even though i stuck to an engine i still managed to learn how to make games so that should count for something i hope XD

And no worries again about the performance thing, Web Gl can be finnicky sometimes, plus i know the game probably isn’t the most optimized out there even if i did my best by having it use the compatibility renderer to ensure it would run the best it possibly can :p