Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

divVerent

53
Posts
2
Topics
31
Followers
5
Following
A member registered Sep 16, 2021 · View creator page →

Creator of

Recent community posts

Great game, and just my genre! Tried it out on my 10 year old kid.

Turns out he solved it faster than YouTubeCarl, who in turn solved it faster than TwitchCarl.

Where can he pick up his PhD? ;)

Congratulations!

As for Shepard Tone: you start on the E, then the C, then the E and walk left to the D. The sentence “Everyone Can Enter Doors” is meant as a hint for which notes to play, and it’s a reference to the old LucasArts game “Loom”, where ECED is the spell of opening.

It is intentional that cheats disable saving and there is no intended way around that. Editing the save file also is not allowed and the game detects if you have tampered with it. Obviously you could get around that, given the game is open source, but let’s try to not cheat and see if we can get you past the part another way.

The good news is, you don’t need to beat this part. From The Anti-Hub there are three sections - you need to beat just one of them so you can beat the game.

However, all three ways from The Anti-Hub are only open if you have completed all three ways from The Hub (and gotten all three abilities). The two alternate routes are:

  • Pushing Onwards, Multi Party Authorization, Tower of Impossible: all this is really easy once you have all three abilities from The Hub. In MPA you do need to be rather careful though, but it’s basically just a matter of patience here.
  • Butterfly Effect, Kaizo, Kaaaart Race, Taking Out The Trash: apart from Kaaaart Race, it’s all rather easy, and Kaizo is a room intended to teach what you need to do to beat the race.

Now, as for beating Higher, Higher, Higher… the first half is really easy, so I assume you don’t have trouble with that part. The second half contains rows of blocks where half only let you through, and the other half only let the platform through. What one does here is stand on the platform so you’ll barely get through the part that lets you through and destroys platform, while being off center on the platform so that if you press the action button, the platform will move to the parts that would block you but let the platform through. Then you get close, and press both jump and action at the same time. The platform will move away from you, and you will jump through. At the apex of the jump, you release action (and jump, doesn’t matter if you do or not) and move towards the platform again to land on it. It’s a bit tricky, but once you know the trick, it’s easy even on a smartphone display.

Thanks!

As for the controls - do you have a better scheme in mind? In settings there’s a way to adjust the controls, and one can also toggle between “explicit B button” and “all unused space is B button” by holding the finger on the background for about two seconds.

There is no builtin level editor, however you can take the source code from https://github.com/divVerent/aaaaxy/ and look at it (and change stuff) in the Tiled editor (https://www.mapeditor.org/).

There is some info here: https://github.com/divVerent/aaaaxy/blob/main/CONTRIBUTING.md#translating

Note that RTL language support is recent - there’s currently someone working on Arabic and someone on Hebrew. Non-RTL language support is well tested and in worst case I need to add another font.

(2 edits)

I need to look into that, that touch controls “do something” while moving them is not intended. Can’t find the cause in code, but will try to see if I can reproduce it anywhere.

The area to hit for resizing is the edge quarter - so top 25% resize upwards, middle 50% move, bottom 25% resize downwards.

As for auto-hiding touch controls when controller is used - yeah, will do, there’s similarly an auto-show of touch controls when touch is used on “no touch by default” platforms, could basically reverse that. Filed https://github.com/divVerent/aaaaxy/issues/221 for that.

Yes, can confirm it :) it is in the section “Multi Party Authorization”.

You also find references to some other creators/streamers from the same community.

(4 edits)

It was rather boring to be honest.

The font outline effect is done by turning one font into two: one as is (just with wider spacing), and another one where all glyphs are replaced by an expanded form of the same (where every pixel is active when previously any neighbor was active). I then draw the outline first and the regular glyph on top. (Sadly, fonts in Go cannot be colored, or else I could combine both into one render call - an option I still have open, but it seems like I do not need it for framerate)

Previously I had implemented this by returning an Image object where the At() function queried At() for all neighbor pixels.

The new implementation rather computes entire glyphs at once, and queries every source pixel exactly once by performing the operation separably (first horizontal, then vertical “blur”).

The main winning from this was a reduced virtual call overhead (as At() is an interface method). Calling it only once per pixel, and doing all further work on byte array realm, rather than nine times meant less indirection.

The main cost of it was more code.

Note that I had previously already eliminated almost all ingame font rendering and did it at load time into pregenerated images - this avoids complex font rendering operations at render time that previously caused fps drops or lags on low-end systems, which was unnecessary as almost all text in this game is static.

FYI current release has massive fixes for controller support on Android - I wonder if that helps with your device. Now finally, controllers not listed in gamecontrollerdb.txt should work, in particular virtually any Xbox and PlayStation 5 compatible controllers should work.

As for aspect ratio, “soon” there will be an option for it, but I am waiting for Ebitengine 2.5 to stabilize first, as the code for this is in a way that differs from the Ebitengine 2.4 way of doing this so I put this on my 2.5 branch.

In the place where the desktop setting has a fullscreen option, the mobile version will have a stretch/letterbox option.

Implemented this now in git (to be released next week) - the button not to be told about yet can be hidden now.

In-game hints then will say “press elsewhere”.

Right now this isn’t enabled by default yet, but holding an empty place on the screen for two seconds in the touch editor toggles the action button on/off.

Yeah; I will see if I can patch Ebitengine to support that. It is actually rather weird that it does not and I didn’t expect that, as on Android’s own APIs the buttons are already all mapped to standard layout.

So good chances this will be a simple patch.

(1 edit)

Seems like the condition for gamepads right now is being listed in https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt#L1560 for Android.

When I clone the line of another Xbox gamepad with my ID, my game recognizes the aforementioned Xbox knockoff without problems.

I agree it’s not running optimally on mobile yet.

As for aspect, this is actually important for gameplay, so I will not change that. Letterboxing is necessary here.

Controller support works for me - when I plug in an Xbox game pad into my Pixel phone via USB Type-C to Type-A adaptor, it just works. However, I do not know what decides whether a controller is supported or not. With another gamepad I have, I get no success but just this message in logcat:

01-27 19:17:43.488 15781 15814 I GoLog : 2023/01/28 00:17:43.488626 [ERROR] gamepad Generic X-Box pad (05000000d620000002280000ff073f00) has no standard layout - cannot use

This is likely a bug in Ebitengine that should be possible to fix soon. Not sure if you get the same message.

Performance is indeed a rough spot - I am rather sure it could be faster if Ebitengine did a better job, but it doesn’t. But do note that the visibility overlay (what makes those shadows) is quite a performance eater - on my Moto G7 Play, which I consider performance-wise the absolute minimum, only lowest settings are smooth (the game does however notice that and after about a minute automatically downgrades to those settings). Without those shadows, however, this game outright cannot work.

So I do not consider Android a recommended platform for it yet. Maybe once performance issues get better.

Mitch community · Created a new topic F-Droid integration?
(1 edit)

It’d be nice if Mitch could also somehow support games that are on F-Droid.

Right now, I sure could upload an APK I made myself whenever I also upload to other places, however, this APK then won’t have F-Droid’s signing key, so my game being present as download via Mitch will confuse F-Droid as they use the same app identifier but a different signing key.

On the other hand, most Mitch users probably also have F-Droid installed, so they don’t really need Mitch to perform updates of the games - after all, F-Droid will already take care of that. So if Mitch could somehow support something like a tag in the game description, or even just look for F-Droid URLs in there, and then offer them as a direct download (can just externally link to F-Droid’s APK, no need to go via their app) so in Mitch it behaves just like a game where an APK was uploaded on Itch - that’d be best I think.

So any chance this could be done? Thanks!

(1 edit)

I see; I’ll see if I can somehow get this supported despite also having F-Droid, as I assume most users of Mitch also have F-Droid installed. And it’s really annoying I can’t use the same signing key on F-Droid and Itch, unless I wait a week for F-Droid’s build and then manually download F-Droid’s APK and upload it here.

For now I put the F-Droid link in the description here.

(2 edits)

Hm… good question. I haven’t considered that yet.

An APK download is already available on https://f-droid.org/en/packages/io.github.divverent.aaaaxy/ but it usually lags behind by about one week (not that many changes are still happening, right now I’m mainly doing localization) - is that good enough, or is there any additional value from uploading the APK directly on Itch?

If I did that, it’d have a different signing key than both the Play and the F-Droid version, which would basically prevent any kind of automatic updating. Or is there a way to automatically update from Itch APK uploads?

That is actually a funny idea; that even allows me to not tell about the button initially.

I.e. a clearly visible jump button, and “press elsewhere” when introducing the actions.

I’ll think about it… it’s technically equivalent to what I can do now with the input editor, but has some appeal.

Thanks for explaining;

as an immediate improvement, I didn’t change anything visually but made the jump button smaller (like it looks) and the action button bigger (the entire rest of the right side of the screen). That should make it much easier to hold the action button while jumping around.

Long-term, still thinking of a good controls edit mode.

I made a game (AAAAXY) that could have been inspired by yours except that I didn’t know it. We had a lot of similar ideas, and clearly both influenced by a certain game involving gravity flipping.

I like how you managed to make it an intentional mechanism to just have one active checkpoint and no teleporting to different CPs - in AAAAXY I made sure it is possible to beat the game that way (“No Teleport” run), but I am impressed by how well yours worked out without that mechanic.

Only issue is, I thought the way up in from Not All Those Who Wander Are Lost was impossible due to the double spikes, and ended up relying on an online available map to look for alternate routes, until I realized it must be possible. For a while I thought I need another ability, not realizing a very intricate combination of walljump and doublejump does this feat. I wonder if some kind of “hint” in the game would be useful here, e.g. maybe another place like this elsewhere where it is obviously the way to go, or at the very least some kind of hint about now having all abilities there can be?

Especially as I was thinking for a while I was lacking another ability - the green things hanging from ceilings kinda remind me of the similar looking things in Earthworm Jim that one can cling to or even propel off via Snott. Although I don’t see how that would help :)

But all in all a well rounded game. Good work!

Have an idea of an alternate control scheme? I basically took ideas from typical NES emulators and 2D platforming games; I do understand it’s not quite optimal though and am open to suggestions.

(1 edit)

Many controllers are supported, a good list of “sure” working ones for desktop platforms here is here: https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt - although on Linux and Windows, any Xbox compatible USB controller will surely work, as well as many others.

However, this does not suppress arrows.

BTW, if you’re on Android, controller support is somewhat limited; it seems like it is also necessary for Android to recognize its layout, which it does not do for a controller I have (a cheap Xbox controller knockoff from Walmart). If you want to suppress the touch controls on Android, there’s a way but it involves ADB (there’s currently no setting for this) to change the settings JSON file to set “touch_force” to “false”. On the web, similarly your browser needs to be able to map it to the W3C standard layout, which is basically Xbox style.

The game requires at least the features a typical NES controller had; however it is implemented such that you can use any stick or d-pad on your controller, they’re all activated.

BTW you can port your savegame from Android or web to the desktop version as well, if desired; see instructions on https://divverent.github.io/aaaaxy/userguide.html under “data storage”.

(2 edits)

At first you’re given a large platform. Carry it up until the top, but do NOT ride it up. Carry it down again instead, and you’ll be presented a small platform. Walk near it but do not grab it (or do, but it’ll make what comes later a bit harder). Carry the platform up again, and ride it up. The exit will be to the side but requires the large platform.

The room is named after a common theme of Super Mario Maker trolling, introduced by a level called “Larl Does Everything Twice Twice” - it’s actually not one room but many rooms that looks the same but aren’t.

I BTW should add that “nonlinear” has two meanings - nonlinear in the Antichamber sense means “the ending is always the same, but the path to it has many variations”. Metroidvania style, basicaly. BTW, Antichamber actually has a “second ending” which is most likely actually a glitch, but conveys a quite different story: https://www.youtube.com/watch?v=wGY2nXjXuTE :)

Stanley OTOH has a quite different kind of nonlinearity. With few exceptions, the path to each ending is always the same, but there are a LOT of branch points. However this is just true on the surface - given that some actions change the game permanently, Stanley also has Metroidvania-style nonlinearity on a level above the gameplay itself.

So, I can’t quite tell which kind of nonlinearity fits your game better. An interesting hybrid is a form of nonlinearity where only some actions decide later outcomes, however most of the game proceeds the same no matter which choices you made. A wellknown game of that kind is Undertale, although this concept has been in use way earlier.

Also, as I was lucky, I now made it to the minutes ending - that one actually was quite good looking.

One issue I BTW had - for me mouse capture did not work correctly. Might be a problem of my system. I thus ended up playing with using the touchscreen to look around, which worked rather well actually.

I also don’t quite understand the point of the many-doors room, given it appears to only have one exit. Also, instead of highlighting the correct exit, a fun solution might be making whichever door the player opens after a few attempts the correct door (maybe 7 attempts is good?).

I got to the “end?” but for the other endings I just am extremely sure how to reach them (found the hint in the starting room and in the big clock room it’s visible when one looks for it), but I am absolutely not a fan of the activation condition for these. Trying to be somewhat vague here to avoid spoilers for anyone else.

The game itself had a vibe similar to both Antichamber and The Stanley Parable. Like, the weirdness is the game, how things change when not looking, but there are no choices to make whatsoever, not even about the order of events, which is a big difference. Like, your game as is isn’t really a game but just a little story. But it shows you could totally expand the concept into something big.

I especially loved the door that gets smaller when you move close to it. Greetings from Lewis Carroll, I think :)

I quite like it. Does not feel complete yet, but a great concept I’d like to see expanded more.

Too bad I fell for every single loading screen… ;)

(The way the endings are hidden, though, isn’t really great… an interesting gimmick but not quite great as is, maybe would be better if the rest of the game were more and had more story, though)

I do not see Steam as an immediate goal mainly as I do not intend to monetize this game in any way and getting on Steam is a huge investment.

Having said that, most likely this game can already be run on a Steam Deck as I’ve seen instructions on how to install other non-Steam games on there; at the very least this game runs both on Linux natively and in WINE, so the same instructions as used for e.g. the Epic store should work. Maybe I should just buy a Steam Deck and write up instructions on how to install - it shouldn’t even be hard.

Thanks!

Yes, each path of Anti-Hub requiring two abilities at once is intentional - and all three sections make that rather clear at the beginning (that trampoline room is arguably weird, I added it specifically to subtly tell the player that they clearly lack something).

Taking out the trash is easy once one knows the trick - one can carry multiple platforms, and releasing two at once into the chute is perfectly safe and even three at once not dangerous but a little tricky.

Yes, the web version is more laggy than it should be, and I am working on optimizing further but especially the rendering I just can’t get faster there even if I turn off most CPU processing - so likely this issue is with Ebiten or the browser (BTW I get much better fps in Chrome than in Firefox). The native version also has some minor GC lags but they are hardly noticeable except when walking left/right a lot (e.g. in Hilbert’s Dotel). I do intend to reduce those further by reducing memory allocation, but they probably will never go away entirely (will follow Go updates though, soon gonna switch to Go 1.18 which has some GC improvements). If you have lots of RAM, GOGC can be set to have fewer GC pauses. If desired, I can help you export your savegame from the web version to the local one.

There are only few parts that actually require strong platforming skills, primarily in two of the Anti-Hub sections which I intended to be rather hard (one of the three OTOH is easier but takes longer). You did get past the race section, which tells me you have what it takes :)

Thanks for compliments on the level design - I’d describe the design philosophy mostly as influenced by Antichamber, VVVVVV and Super Mario Maker troll levels, while being a math nerd. You really shouldn’t check out the game I made when I was 16 though, but well, there’s a reason it’s not on Itch ;)

Cool way to combine mouse with keyboard input - although I wonder if this would be better as mouse-only, with e.g. right-clicks sending the spark through wires like WASD do and otherwise moving the robot.

Cool concept - nice way to design and exploit “incomplete reset” mechanics in a game!

Cool - reminds me of two classics, Falldown and Getting Over It :)

(1 edit)

Another game in impossible spaces maybe worth mentioning is Unreal Tournament ’99 (the GOTY one). A few included maps use portals to shorten/lengthen pathways to balance out gameplay on the map. This is hardly noticeable in-game though, so it differs from the use in other games - the player is not intended to ever notice.

Of course, some third-party maps totally exploit that feature :)

(1 edit)

Thanks!

BTW, as for the teleportation trick - both Antichamber and AAAAXY could not really have been done with the teleportation trick alone, as objects (e.g. Antichamber’s matter gun blocks) remain available when going through a portal. In a few places a player can even clearly notice that the game isn’t just teleporting those blocks, too.

However, the first part of the game would entirely have been possible with just seamless teleportation.

BTW, Super Mario Bros. 1 is probably one of the first games with impossible spaces, in two ways, so it may too be worth mentioning:

  • Pipes are not connected in a way consistent with layout on both sides (but arguably this could be understood as a long twisted pipe one just doesn’t see, so this may not really count - after all, maybe pipes are just teleporters).
  • Levels 4-4 and 7-4 are “puzzles” where one has to pick an upper/lower path, and picking the wrong path seamlessly transports one to the start of the “puzzle”. This appears to be done by seamless teleportation and even in a bad way, as Firebar objects suddenly stop working when scrolling past the “portal”.
(5 edits)

I would not agree with this, because by this logic, any L-shaped level is non-Euclidean because the shortest path is not straight.

In fact, any bounded “space” already violates Euclid’s axioms, as you can e.g. find two lines that are not parallel in the “infinite extension”, yet nowhere cross within the space. So just reducing the plane to a rectangle’s contents already is breaking Euclid’s axioms.

I think the issue is different ways of interpreting “non-Euclidean” - a mathematician typically means by non-Euclidean geometry not anything that violates some of Euclid’s axioms, but something that violates them in a rather specific way: only the parallel axiom, and in a rather “deterministic” way (i.e. either there are no parallels, or infinitely many, no matter which point and line one starts from). However, it is quite clear that most game worlds violate Euclid’s axioms in some ways or another, thereby it is technically not wrong to call them non-Euclidean. Yes, even Quake… with its floating point inaccuracies making Euclid rotate in his grave :)

BTW, as for gravity lines crossing - this is even already the case in the very first room of the game.

However, IIRC if you move the platform A, go around the hole to find a yet unmoved platform, and then go back, the platform A also becomes unmoved, so it is still not really the same thing…

This comes from the rule of the game “if you can’t see it, it does not exist”, which is derived from the same rule in Super Mario games. I.e. the moment you take the platform A out of view, it gets destroyed, and if you come back to its spawn location, it reappears there. Just like a Goomba which will reappear even if you allowed it to drop down into a pit once you leave and re-enter the section.

Implementation wise, doing the portals in the tile loader means the game code already “sees” only the universal cover, meaning everything in game is a standard 2D tile map based game, and e.g. distance functions work normally. So it could be seen as an Euclidean game with above visibility rule working on the universal cover and thus an infinite world - or maybe a tiny world that is built and destroyed around you as you go. To the player, and the way the levels are designed, it behaves more like a typical portals based game, except that you will never see yourself or duplicates of the same object at once.

(1 edit)

One issue here is the lack of a generally accepted and mathematically correct term.

It appears that the common term in game development has been “non-euclidean geometry”, even though it is often just “accidentally” violating Euclid’s axioms, and only in few places. The term “impossible spaces” appears to be used too and would be more accurate, but is not as commonly used for these games. I think I will try adjusting to that, as impossible spaces are more the focus than some accidental violations of the parallel axiom.

https://zenorogue.medium.com/non-euclidean-geometry-and-games-fb46989320d4 (which, I know, is your site)

(1 edit)

To be clear, the universal cover property is mostly true; there are a few places where portals are enabled/disabled at runtime (in particular the places where one goes back and something changes in the previous place), and thus the topology is actually changed. In most cases the property is actually true, and things actually do change when you go around the hole (e.g. if the annulus contains a platform, you would be able to hold on to this platform and get a second one when you get to the “same” place again, and the existence of both objects together proves that the old and new place is not fully identical).

But you are right, the proper word, to be exact, is topology, although “non-euclidean topology” isn’t quite the right term either. https://hyperbolica.fandom.com/wiki/Fake_Non-Euclidean_Geometry is a quite good description.

HOWEVER, it isn’t Euclidean geometry either - e.g.

A list of things that have been mistakenly claimed as violating Euclid’s 5th postulate “for any line A and point B, there is exactly one unique line that crosses B but not A” is here:

is actually violated a few times accidentally, although not by every use of portals. Furthermore, from Euclid’s axioms, it follows that a line segment is the shortest path between two points, which is absolutely untrue in all “R^n with portals” worlds due to a trivial counterexample.

Feedback taken though, I will look for a better way to describe this. Thanks!

Yes, I was referring to the warping around. This would feel better if it were exactly at screen borders, no scrolling.

OTOH a bit later you combine it with an orientation switch, which makes it less weird. Maybe already use some height difference at the first instance of it too so it feels less like a screen wrap? As it is, it's at first some kind of odd middle ground.

Really well done, enjoyed!

My only real criticism is that the music is rather limited, and that the combination of scrolling and screen-wrapping in the same direction doesn't feel very well.

(1 edit)

Also, a big oops - I just noticed one can reach kaizo without being able to even stand on platforms (you get that ability elsewhere).

I've fixed that in git now by making the room before it "clearer" about this (will release this next week when I am fully done with it), but in the meantime, if that's your problem - go back to The Hub, into the topology madness, and that will give you what you need.