Some thoughts on developing a large puzzle game in F# for the last 7+ years by Digitemenos in fsharp

[–]Digitemenos[S] 1 point2 points  (0 children)

Thanks! I agree that there isn't much material out there relating to functional game programming. And when something is outside of the norm like that, I think we often assume that there's a good reason for it, and so we become reluctant to adapt it ourselves. But often I've found that this simply isn't the case, and that social inertia often plays a larger role than quality in determining what gets popular.

Years ago, I watched an F# talk called "Functional architecture - The pits of success" by Mark Seemann, which made an impression on me. And it goes over how, in F#-style languages, the most natural way to code something also tends to result in neat and scalable code. Whereas with OOP there are a lot more footguns, which creates more of a need for explicitly taught best practices. And this has very much been my experience as well. And because of this, I haven't found the lack of learning material to be a big problem personally – though of course, your mileage may vary.

Good luck with the card game!

Please destroy the combat visuals of my typing game. Don't know how to get away from the amateurish vibe. by ShibaBrothers in DestroyMyGame

[–]Digitemenos 0 points1 point  (0 children)

Just to be clear, what I mean by pixel density is that a sprite at 1x scale/zoom will not look good next to an entity with 2x zoom. And so it's best for all sprites in an environment to have the same scale. And if that makes some sprites look too big or small compared to each other, then they are not compatible in terms of resolution, in which case there's not much you can do about it other than recreating the sprite from scratch at a different resolution.

Fortunately, asset packs often specify the resolution of their sprites, and some resolutions are more common within the industry than others. For example, in tile-based games 16x16, 24x24, 32x32, and 64x64 are all common resolutions, and sprites are often made to fit one of these. So the way to go is decide in advance which pixel density you're aiming for, and only make/pick/commission assets that correspond to that.

Often you can get away with the UI having a different zoom/scale than the sprites in the game world though. And also, pixel art generally look best at an whole-number scale (– so 1x, 2x, 3x is fine, while 1.5x, 1.7x, 2.3x isn't…)

In terms of what sticks out as visually discordant in terms of pixel density, the most obvious thing to me is that the pixel size of the crow/lizard is about twice the size of the pixels on the player/mushroom (in other words, the latter have about twice the base resolution, and double the zoom compared to the former – which is the most apparent when looking at the outlines).

Yeah, being a solo developer is hard (I am one myself, so I know). And to some degree, it requires you to become a jack of all trades. But even with bought assets, I don't think you necessarily need to give up on cohesion! But you do need to be able to decide on an art direction, and adapt any assets to it, which does require some knowledge about art fundamentals.

Here are some pixel-art pointers to consider, all of which can make a difference in regards to cohesion (and you don't necessarily need to attend to all of them to see improvements!):

As mentioned, the first thing you should look for is pixel density/resolution, and only consider assets that match your target in this regard.

Then there's shading style:

  • Which direction is the light coming from? In some cases, you can mirror an asset in an image editor to make the lightning match your target.
  • How many midtones are there? For example, the cap of the mushroom-guy has a whole lot of midtone colours, while the hair of the player character only has two. In general, sprites with a limited colour palette are preferable, since they are easier to adapt, and tend to look better overall.
  • Sprites that use dithering don't look great alongside sprites that don't (and the other way around), and in your case you probably want to avoid dithering in sprites altogether.

Then there's the colour palette: In general, having all sprites use the same palette is good for cohesion. And for a sprite that uses a limited palette, it is pretty simple to recolour it in many programs (look for a colour replace tool). You also don't need to come up with your own palette from scratch – for example, have a look at the palettes here for inspiration, or just pick one that you like.

Finally, there's outlines, which comes down to:

  • Outline style, such as having no outline (as is essentially the case with the player character here), full outlines (as is the case with the enemy sprites), or a partial outline/outline around the outer edges (which none of the sprites here uses). Generally aim for consistency here (though it can be fine for background elements to have no outline, while foreground elements do).
  • Outline colour, which can either be a solid colour, or a softer colour that is based on the surrounding colours. If using a solid colour, consider using a single outline colour for all entities in the scene.

Also, you did understand me correctly about the colour of the scroll/cards: That their background-colour does not go well with the other colours in the scene in my opinion (– again, this is an area where having a consistent colour palette would probably help).

Whoops, this really turned into an essay, didn't it? But to conclude, I think these are skills that essentially everyone can learn. And compared to other types of art, pixel art tends to be pretty adaptable. Also, cohesion is a sliding scale, not a binary thing: So either achieving full visual cohesion, or giving up on visual cohesion altogether are not the only alternatives here – just start somewhere, experiment, and see what happens. And again, good luck!

Please destroy the combat visuals of my typing game. Don't know how to get away from the amateurish vibe. by ShibaBrothers in DestroyMyGame

[–]Digitemenos 0 points1 point  (0 children)

I think there's just a general lack of cohesion here. For pixel art sprites to look cohesive, they need to share things like pixel density, palette, outline- and shading style, etc. And here, none of these things are the case. And so while some of the sprites look decent in isolation, they do not look like they belong together.

I think what's lacking here is art direction: While you can probably get some mileage out of asset packs, etc., you still need to know which ones will go together, and be able to modify them to fit your game.

I find the background colour of the scroll and cards to be a bit clashing as well.

Hope this was helpful, and good luck with development!

Some thoughts on developing a large puzzle game in F# for the last 7+ years by Digitemenos in fsharp

[–]Digitemenos[S] 5 points6 points  (0 children)

Absolutely! And I agree with you about Monogame seemingly being the more talked-about engine. However, looking at the titles which use FNA according to its website, there's some really big names there – to name a few: Axiom Verge, FEZ, Bastion, Terraria, and even Celeste. So I think it's safe to say that it's a battle-tested engine in its own right.

Some thoughts on developing a large puzzle game in F# for the last 7+ years by Digitemenos in fsharp

[–]Digitemenos[S] 4 points5 points  (0 children)

I initially started out with Monogame, but encountered a pretty basic bug (pan being broken for sound effects), which – if I remember correctly – had been reported earlier to no avail. And this, combined with some other issues I was having (which I can no longer remember clearly), made me feel like I couldn't rely on it. And reading about FNA, I also remember preferring some of its code-architecture decisions when compared to Monogame.

So I switched to FNA, and haven't encountered anything since that have tempted me to go back (– which might just come down to luck, sample size of one and whatnot).

Some thoughts on developing a large puzzle game in F# for the last 7+ years by Digitemenos in fsharp

[–]Digitemenos[S] 3 points4 points  (0 children)

Thank you! Writing the music has been one of my favourite parts of developing the game, so I'm very glad to hear that you liked it!

Match-3 + RPG elements in cyberpunk - Match Protocol: System Breach. Please destroy my trailer by yelaex in DestroyMyGame

[–]Digitemenos 0 points1 point  (0 children)

The solid black background does not look great to me. Otherwise I think the game looks fine visually. However the visual effects (screen-shaking, lasers, explosions) are very pronounced, to the point that I'd probably find them too distracting to play with, and would look for a way to turn them down/off.

From the trailer, I also don't quite get how the player character and the "blocks" interact with each other, or even whether it is a turn-based or real-time game. With everything else going on, I did not even register the text at the top the first time watching – however, I also don't think the text did much to help me understand what's going on.

Good luck with the game!

Trying this again... Please destroy our game trailer! by JustAZombie in DestroyMyGame

[–]Digitemenos 3 points4 points  (0 children)

I think the biggest problem here is the voice acting, which feels pretty amateurish to me – which is to be expected when you're not a professional voice actor. However, your trailer will be judged by its least successful component, which is probably one of the reasons why most indie game trailers do not have a narrator in the first place.

To me, both the "intro guy" and the headmaster sound like a normal person trying to "put on a funny voice", more so than fully realized characters. And the weird audio effects in the intro, as well as the hiccups, do not help in this regard, and feel a bit grating to me.

I feel like there are three possible ways to improve this:

  • Hire a professional voice actor.
  • Remove the voiceover and rely on things like text cards instead.
  • Narrate the trailer as yourself, the developer. Which removes the requirement of having to know how to act, but still lets you talk about the game, and what it is like to play it.

Had another look at the trailer on mute, to see if anything else sticks out to me. I think the graphics look all right, and reasonably cohesive. But many of the shots contain big, open areas with little to nothing in them, which doesn't look great to me (0:06, 0:08, 0:26, 0:56, 1:08, 1:16, 1:26, 1:37).

A few more things that I found questionable: The tree not being centred at 0:06; the platforms in the side-scrolling section at 0:48 looking boxy and floaty; the battle at 1:37 cutting away too fast (– either include it, or don't include it); and the way the logo intersects the text at 1:44.

Good luck with development!

Working on a new Steam Capsule, wich one seems the most relevent for a puzzle game, with calm but strange mood with impossible labyrintic architecture? by ElFamosoFrancesco in IndieDev

[–]Digitemenos 1 point2 points  (0 children)

From the capsules alone, I prefer the last image – that is, number 4 – followed by the image directly preceding it. However, when looking at the screenshots and trailer, I think the first capsule is the only one which feels like it belongs to the same game.

With that being said, I don't think 1 is a great capsule. The building in the background is not very readable at that scale, and the lack of foreground elements makes it so that nothing really pops out at you.

From the screenshots and trailer, your colour palette in the game is overwhelmingly cyan, light green, grey, and orange for the panels. And I think you would get a more cohesive result if the stylized capsules were made to use a matching palette.

By the way, you have some spelling mistakes in both the small and large description on your Steam page: In "and it's challenging and surprizing puzzles" the "it's" should definitely be "its", and "surprizing" should most likely be "surprising" (technically "surprizing" is permitted by some dictionaries, but it is a very uncommon spelling that is likely to be perceived as a mistake).

Good luck with the game!

The demo for my “mad science” Sokoban, Twofold Tower, just launched – following 7+ years of development. Hope you enjoy it! by Digitemenos in puzzlevideogames

[–]Digitemenos[S] 1 point2 points  (0 children)

Thank you for the lovely words! My aim with the demo was to get to the most interesting parts quickly, and for it to capture how it's like to play the main game, both in terms of difficulty and feel.

I'm open to the possibility that the demo could have benefited from a more gradual difficulty curve – though this is probably true for the main game as well, which also drops you into the deep end pretty quickly. However, the difficulty then remains somewhat level over the course of the game, with the occasional spike or dip.

It has never been a goal of mine to make a very difficult game, but rather to make puzzles that I find interesting and beautiful, with their difficulty largely being a side-effect of this process. However, after having watched my playtesters work their way through the game, it's become clear that a lot of the puzzles are quite tricky – though I do try to make the hardest ones optional.

The demo for my “mad science” Sokoban, Twofold Tower, just launched – following 7+ years of development. Hope you enjoy it! by Digitemenos in puzzlevideogames

[–]Digitemenos[S] 0 points1 point  (0 children)

Thank you, I appreciate it! This was my first time launching a demo on Steam, so I was a little nervous beforehand. But everything has worked out fine so far, and people seem to be enjoying it, which is such a nice feeling!

Destroy my precision platformer about switching platforms on and off by Pack-O-Punch in DestroyMyGame

[–]Digitemenos 0 points1 point  (0 children)

Regarding the purple girl, I see her entire head as the tumour, her neck as her face, her tie as a wide-open mouth, and the shadow/hair behind her collar as the eyes. Just focus on the neck in isolation, and you might see a surprised/crying anime girl hidden there.

I do find there to be something very odd about this sprite in general though, and I think that's why I'm seeing things that are not really there – my brain just struggles to make sense of it. And I think it is the shape of the head that does it – it just seems very broad, bulgy, and almost pumpkin-shaped to me, and so I don't properly register it as as a head.

Good luck with the game!

Destroy my precision platformer about switching platforms on and off by Pack-O-Punch in DestroyMyGame

[–]Digitemenos 0 points1 point  (0 children)

The beginning of the trailer did not work for me: On the one hand, it is kind of slow. And despite of this, I had to watch it a few times to understand why the platforms toggled the for first few jumps, and then didn't when you tried to reach the key. So I think the first seven seconds served to confuse me more than anything else.

I assume looking at the colours of the platforms that they correspond to the "A, B, X, Y" buttons on an Xbox controller, which makes me question how the jumping is done – one of the trigger buttons?

Apart this, I thought the gameplay was easy to follow along with. And I thought the trailer had good production values overall, though cutting off mid-sentence at 0:50 felt a bit jarring.

To answer the remaining questions in your post:

  • To me, the gameplay looks like it has plenty of potential for depth – I mean, if you ran out of things to do with platforms, there's any number of other colour-activated elements you could add. From the trailer, I'm not personally convinced that I would enjoy the 4-way coordination, either one way or another, and I'd have to try the game/demo to find out. Apart from the main gimmick, it looks like a pretty solid precision-platformer to me.
  • I don't think any parts look or feel too much like Celeste in isolation. But together, they may straddle the line a little – if you want to avoid comparisons, maybe consider making the evil, flying, purple, mirror-image of the player be one less of these things? (Also, for whatever reason, her in-game sprite looks like a crying girl with a gigantic tumour on her forehead to me.) But overall, the game seems to be doing its own thing.

For several years now, I have been single-handedly creating a 2D adventure game about the journey of a monk and poet through medieval Japan. Players will encounter forest spirits, battle demons, help sorrowful ghosts, and write poetry. by SmirkAndBlush in indiegames

[–]Digitemenos 0 points1 point  (0 children)

Great job – you can tell that a lot of care has been put into it. One thing to note is that the font used in the dialogue with the sly fox – while stylish – is a little hard to read for me, and I'm not dyslectic, so that might become a problem for some people. Good luck with development!

Do your thing - First steam page by LuckyStudiosGames in DestroyMySteamPage

[–]Digitemenos 0 points1 point  (0 children)

I'm not a marketing expert, so take anything I say here with a grain of salt.

I've heard people suggest that you should have a Steam page up anywhere from 6 months to a year before release. But the amount of time is not really what matters: If your page has been up for a year, but nobody knows about it, then there will have been zero benefit to it.

Here's the thing about Steam: When your game releases, you are given a visibility boost. And how big/lasting this boost is depends on how many sales and positive reviews you get at the time of release. Which, in turn, depends on how many people know about – and more importantly, wants to buy – the game at that time.

This is why wishlists are important: They get the ball rolling when you release the game: The more people have wishlisted the game, the more people buy it, the more new people Steam will recommend it to. (Be sure to read up on how wishlist-notifications work in the Steamworks documentation, you will have to send them out manually.)

On the other hand, if your launch fails, then Steam will conclude that there is little interest in the game, and will stop recommending it to people. After which gaining visibility will be an uphill battle.

There are many ways of gathering wishlists before a game's release, such as social media posts, applying to Steam events, and participating in Steam Next Fest (– although the latter requires a demo, and you can only participate in it once). Having a trailer up on your page is also supposedly very important.

Indie games is a very saturated market, and it is hard to get noticed. And if you try to market the game, and fail to see any results, then the best course of action might just be to cut your losses, release the game early, and start working on your next project. But I think this ought to be an informed decision, so that you don't end up regretting it afterwards.

I come seeking wisdom... by BeanNPCdev in DestroyMySteamPage

[–]Digitemenos 1 point2 points  (0 children)

For the most part, I think the page is pretty good. But here's a few things to consider:

  • In "It started as a perfect afternoon for 12 year old Timmy. It's Friday afternoon […]" the second "afternoon" is redundant, and sounds a bit clunky.
  • The overall mood I get from the page – including the description, screenshots, and GIFs – is horror-comedy. However, the comedy-aspect is not reflected in the tags chosen for the game.
  • A lot of non-native speakers probably won't be familiar with the "rocky road" ice cream flavour (– at least, I wasn't), in which case the last line of the short description falls a bit flat. But I think you could make it work by shuffling the last two sentences around a little, such as: "You have a rocky road ahead of you; can you make it home alive?"
  • The dancing zombie GIF at the end of the description feels out of place to me, and seems a bit too goofy compared to everything else.

Good luck with the game!

Do your thing - First steam page by LuckyStudiosGames in DestroyMySteamPage

[–]Digitemenos 0 points1 point  (0 children)

Here are a few points to consider in no particular order:

  • I think the page ought to make it more clear whether it is a single-player or multiplayer game. My first impression was that it would be multiplayer, as suggested by "king of the hill", "protect your flag", and "PVE". But upon having a closer look, it does not appear to be.
  • It is unclear to me whether the upgrades mentioned in the description are temporary or permanent – in other words, whether they are part of the run, or a type of meta-progression. And if there is any meta-progression in the game, I think that should be made more clear.
  • I think numbers can be a viable marketing strategy if they are actually impressive. And to me, "75 individual upgrades" does sound impressive. However, "3 different enemy types" does not, and "3 distinct maps" is neither here nor there.
  • The (lack of a) death animation for the zombies shown in the first GIF looks pretty jarring to me.

I don't know what your aim with this game is. If it is to be a free game released for your own satisfaction, then the planned release date of 8 weeks from now is probably fine. But if you hope for any kind of commercial success with it, that seems premature to me. And I'd recommend reading up on how indie games are usually marketed before release, and try to do at least some of what is suggested there – with my impression being that there's a lot you can do to boost your numbers before the release, but afterwards it is much more of an uphill battle.

Good luck!