Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs

Arkia

52
Posts
6
Topics
16
Followers
A member registered Sep 10, 2015 · View creator page →

Creator of

Recent community posts

Pretty good game. One thing I noticed though is that the bats are a bit hard to see against the background.

This was made pretty much from scratch in C with the Windows API on Windows, and SDL2 on Linux. It uses a rendering and audio system inspired by NES/SNES hardware and all assets use simple, but still small, custom binary formats.

Thoughts from playing:

  • The simple art style is very effective.
  • Cute character designs.
  • Game was easy to learn, though it did take me a second to realize I needed to bring the coins back to the start.
  • Some parts felt very RNG heavy and unfair, especially on the higher difficulties. The skulls will often crowd around places the player needs to go and since they appear to move around randomly getting past them mostly comes down to luck.

Thoughts from playing:

  • Very impressive challenge trying to fit a city builder in a 16x16 resolution.
  • Game could probably use some extra mechanics to add depth. Maybe if buildings had certain requirements or got bonuses for being near other building types. Currently there isn't much strategy and really no reason to build anything other than places of interest since they give the most score.

Thoughts from playing:

  • Audio balance is skewed towards the left speaker.
  • Love the presentation. Fun backstory, excellent character designs.
  • Gameplay is fun and solid. Reminds me of Binding of Isaac.
  • The boss didn't seem to behave properly. It looks like it's supposed to stop and flash the shadow when it's going to drop down, but sometimes it just drops down with no chance to dodge it.
  • After losing to the boss and resetting I can't leave the tutorial rooms.

Thoughts from playing:

  • Nice art style. Like the parallax layers and the terrain in the background looks good.
  • Music in game is a bit too quiet.
  • Decent variety of biomes in the world.
  • Wasn't able to figure out much to do. I collected a bunch of random items, but was only ever able to craft a campfire which didn't seem to do anything. Also ran into a bunch of dinosaurs but couldn't come up with a decent strategy to deal with them.
  • Inventory is quite buggy. Moving items between slots doesn't quite update the display correctly.

Thoughts from playing:

  • Fun arcade shooter.
  • Decent variety of enemies.
  • Pretty long game. Long enough that it would be nice to have a checkpoint at the start of each major area.
  • Last shot before reloading doesn't actually hit things.
  • Selecting the arrow to advance through the level shouldn't use up a shot.
  • Enemies that take multiple hits should give some kind of feedback when they get hit. It's initially unclear if they're actually taking damage or if the player is just missing them.

Thought from playing:

  • Really well designed game.
  • Great use of additional mechanics to keep the game feeling fresh.

Thoughts from playing:

  • Amazing graphics and nice music. Environments in particular look great.
  • Love the Japanese mythology theme.
  • Short and sweet story.
  • Enemies can sometimes spawn way too close to the player.

Thoughts from playing:

  • Environment is dark and spooky.
  • Reading cryptic messages for backstory is fun, but there didn't seem to be much of a plot to piece together. Though maybe I just didn't find enough of them.
  • The player is excruciatingly slow.
  • The walls in some of the rooms aren't solid.

Thoughts from playing:

  • Neat concept.
  • Simple and fun. Could easily spend a lot of time playing.
  • Larger variety of monsters and diseases that all look interesting.

Thoughts from playing:

  • The sound when mousing over menu items is a good touch.
  • Nice simple art style.
  • Text in the background is neat.
  • Sometimes when you die the game doesn't respawn you in a safe location.

Very interesting concept.

Thoughts from playing:

  • Game concept is simple and fun.
  • The reduced palette effect is a bit harsh and makes it difficult to see.
  • It's easy to just outrun the guards which makes the stealth element less important.
  • Despite the description saying you only have 4 shots pressing R gives the player a new gun so they effectively have infinite shots.
  • The hardest part of the game is trying to navigate and find the exit after the alarm goes off.

Thoughts from playing:

  • Title screen looks good. The hexagons flipping in the background is a nice effect.
  • Despite the timer in versus mode counting down 2 minutes, versus ends after 1 minute and 10 seconds.
  • The board the densely packed with power-ups which is nice because it gives the player many chances to use them, but it also makes it difficult to pick out specific power-ups.
  • Two of the power-ups are meant to be used against enemy drones but I rarely ever saw the other drones.
  • The magnet is by far the most useful power-up in versus mode.
  • Flowers have a long delay before they disappear after being picked up which makes collecting them feel unresponsive.

Thoughts from playing:

  • Cool and unique game concept.
  • Background music sets the tone nicely.
  • Changing the settings of the jar is pretty intuitive.
  • The font used for dialogue is a bit hard to read. This is fine most of the time since the words can usually be determined by context, but in some cases such as with long complicated words it becomes very difficult to read. This also isn't helped by the dialogue automatically advancing.
  • An alternative to the scroll wheel for control would be nice. My browser still responds it and scrolls the page while trying to play.
  • For as long as the tutorial is it really only focused on telling me how to use the controls, most of which are self explanatory, instead of how to actually play and find the correct settings to get xenos to appear. At a low estimate there are at least 78,000 configurations for the jar so having some direction on what combinations to try and where to start would make it much easier for new people to pick up and learn.

Thoughts from playing:


  • Music sounds great.
  • Using number keys to select menu items is unintuitive and took me a while to figure out. This also isn't listed in the controls.
  • Music in game sounds a little too quiet compared to the sound effects.
  • Very good art style. Everything looks great and the parallax backgrounds are nice and fancy.
  • Nice variety of enemies and power-ups.
  • Stages are fairly long.

Thoughts from playing:

  • Game probably should be scaled larger than it is.
  • Interesting concept. Wasn't able to fully understand how to navigate but the game was still playable and I could get to the end.
  • Items make a huge difference in survival which makes finding them feel rewarding.

Thoughts from playing:

  • Not 64x64. Many highres elements.
  • Good sound track.
  • Really cool combat system with satisfying sound effects.

Thoughts from playing:

  • Very well designed game.
  • Highlighting where objects will spawn makes the game fair, though still challenging.
  • Art style is simple, but effective. Objects read well and the color cycling in the background is a nice touch.
  • Controlling the player and gravity is decently intuitive.

Thoughts from playing:

  • Nice fancy startup sequence and title screen animation.
  • Art style looks great. Nice consistent palette and obstacles and objects all read well.
  • Simple and fun gameplay. Could easily see wasting a decent amount of time playing this.

Thoughts from playing:

  • The main scene has a lot nice little details. I especially liked the clouds moving in the background.
  • The death animation is smooth and dramatic.
  • Jumping feels a little weird. The player shoots up quickly and then floats down giving a strange jump arc.
  • I could not figure out how to damage the monster.

Thoughts from playing:

  • Nice fancy intro animation.
  • Subpixel movement, so not quite 64x64.\
  • Well it was pretty great.

Thoughts from playing:

  • Title screen looks good. The reflection and wavy effect comes out very nicely.
  • World map between levels is neat.
  • Combat works well, though the attack range feels just a little too short.
  • Highlighting where the boss will appear is a good idea, but it's initially unclear what it means. When it first happened I thought I had to stand there to progress the game.
  • Second boss is a bit of a difficulty jump from the first. If you don't stand in the safe spot you pretty much lose.
  • The floating ice enemy in the final level doesn't read well and easily blends into the background along with it's projectile. This background seems a bit too busy in general.
  • The final boss is very difficult. Particularly the attack where it shoots out 2 icicles in forward. There doesn't seem to be a tell or a pattern for when it's used and the icicles move very fast making them hard to react to. Also I object to this boss ignoring my damage upgrades and only taking 1 damage per hit.

Thoughts from playing:

  • Title screen looks good.
  • Intro music is nice and mysterious sounding, though one of the sounds (something like a fan or a propeller) in the background is a bit harsh.
  • The brown crystals have a pretty irritating sound and having multiple of them on screen causes the sound to start stacking and distort.
  • Very difficult. Light runs out very quickly and if an enemy is active you spend most of your time trying to find refills and flicking the light on/off instead of making progress.
  • Hidden switches are fun to look for and the story delivery through short cryptic messages works very well and fits with the mystery aspect of the game.

Most of today was spent doing audio. While I had a basic menu blip and a short loop to make sure the audio system was working that simply wasn't going to be good enough to release. Unfortunately I don't really know that much when it comes to making sounds and music so I had expected this to take too much time. However I managed to get the hang of things fairly quickly and was able to get some okay music and sound effects done with plenty of time to spare.


Also done today was a full, albeit short, level for the jam version of the game, and also a small ending sequence. After finishing these things and fixing a number of bugs my jam entry is finally finished! Be sure to check it out here: https://itch.io/jam/lowrezjam-2019/rate/459323

Tons of progress made today! First off the player can now interact with the enemies. This includes taking damage from them and defeating them. And a new enemy type was added. Another basic one, this one moves back and forth along the ground.


Also finished today were the pause and game over screens. These include a color tint effect that can be applied to the palette. And finally a goal to be placed at the end of the level and a level clear animation sequence have been created.


Tomorrow I hope to finish off the level clear sequence with some kind of ending for the jam version, then build a full level. Then hopefully I'll be able to add some music and sound effects, and maybe some extra effects like explosions for a final bit of polish before the deadline.

Today has by far been the most productive day in a while. As much as making the new tools sucked it seems having them has caused the breakthrough I was hoping for. Making new content is now very quick and easy, even when I screw up and have to redo things several times in a row.

Going down the list of things to do my first order of business was to finish off animating the player. First I had to draw some more frames for the rest of the moves the player can perform. These include jumping, dashing in all 8 directions, and a small little flip at the end of a dash. After a few iterations I had something that looked like this.


These were then composed into sprites and had animation sequences written for them. After which is was time to write an actual animation controller for the player. This took the form of a simple state machine that runs at the start of each update. While getting the animations up a running I also ended up tweaking the dash a bit as it was very short which didn't let you see the animation for it at all. It's now been made somewhat slower. Now almost all of the animations for the player are finished. The only one left requires some enemies to interact with.

So the next item on the list was the make some basic enemies. First I made some new tiles based on the enemies I drew in a small sketch a while back. I then gave the floating one a small animation to make it hover up and down slightly. I wrote a small function to spawn them into the game to test out and now the game looks like this.


And with a small tweak to the editor and the screen loading function I can now place these anywhere in the level. Still some work to do however. The player and enemies need to interact with each other, and enemies should also despawn when they get scrolled far enough off screen. But it looks like those things will be dealt with tomorrow.

So making these tools along with some private matters left me very demotivated for a while. Was starting to worry I might not be able to finish, but I managed to get myself back to work. Unfortunately the first thing I had to do was fix bugs with the tools I had made as they didn't quite export assets properly. But after tracking down and fixing these bugs and changing the engine to work with some of the tweaked formats it's all finally working. I can create things in my editors and get them into the game with far less issues than before.

Since we're nearing the end of the jam the first thing I did upon picking up this project again was to write down a list of all the things that need to be done before I can really call my entry finished. Turns out there are still many things left to do but if I can consistently work on them until the end of the jam I'm sure I can get through them all. And some of them might not be completely necessary for me to be able to submit.


Once I had a list of all the things I wanted to have done I got straight to work on the first item, player animations. Unfortunately my first attempt wasn't very good and I spent much of this time tracking down the bugs I mentioned earlier. However after refocusing and trying again I managed to make a decent walking animation for the player. Along the way I also realized that getting these animations to work in game is going to be complicated and started planning out how I'll try to implement them. However it's the end of the day so that will have to wait.


Well it has taken much longer than I would have liked but it's finally over. I now have a level editor giving me a full set of actual tools for creating content. Which means I can finally go back to building and improving on the actual game! 


Before that however I do have to tweak some of the routines that load resources as some formats had to change slightly so that they could be loaded into editing programs. But once that's done we're back to my original goals which were to make animations for the player and start creating objects to be placed in levels. With over 5 days still left in the jam I think I should be able to at least make one polished level and then finish the rest of the game post-jam.

Very slow progress. While making new tools may have gotten somewhat faster, the tools are naturally getting more complicated which cancels that out. I would like to get back to working on the actual game by the end of tomorrow though so I'm making some cuts. Instead of fully fledged editors for animations and audio sequences I've opted to write simple byte-code assembler for them. I've written these several times before and in a few hours I have Python scripts that can assemble both of them. Combine that with a full editor for putting sprites together and I only have one more editor left to build which means I should be able to meet my goal of making actual content by the end of tomorrow.


I spent the last few hours yesterday figuring out what tools I wanted and getting a general idea of what they should be capable of and what they might look like. By the end of the day I was mostly satisfied with what I had and would be ready to start implementing them the next day.


And so began the terrible slog that is trying to write GUI applications. Surprisingly it wasn't as terrible as I had anticipated this time. I ended up creating a small subset of a custom GUI library for myself that ended up being loosely based on the Immediate Mode GUI model. It still took quite a while though so at the end of the day I only have one tool actually completed. A tile and palette editor!


Not exactly the best tool ever made, but it works and it's better than my current workflow which is all that really matters. Hopefully having a small GUI framework written will make creating the rest of the toolset much quicker.

The animation system is done! Probably a bit more complicated than it should be but that's fine. Animations are defined using a byte-code similar to what the sound system uses for music and sound effects. However to facilitate jumping into the middle of an animation sequence each byte-code instruction has a time stamp indicating how many frames into the animation it should be executed at. Currently it can only modify an object's current sprite but it can easily be extended to modify all of an object's properties and possibly do additional things such as creating particles or spawning new objects.


And as noted on that page my next goal is probably going to be to make some actual tools for content creation. Currently I only have a small python script to convert .PNG images which works well enough, but I have some fairly complicated data formats. Putting these together by hand in a hex editor is a very time consuming and error prone process and that simply won't do if I want to actually have some decent content in time for the jam.

However one other thing I did today was package up some test builds! They aren't terribly exciting as there's nothing to actually do in them just yet, but I do need to make sure that they actually run for other people. So make sure to check them out and let me know if they have any problems.

https://arkia.itch.io/tiny-cat-adventure

(1 edit)

Only managed to get to the smaller items on the list today, but they're still just as important as everything else. First up was to finish dynamic level loading. All screens adjacent to those that the camera can currently see are constantly being added to the list of screens to load. To ensure they only get loaded once however a 16x16 grid is used to keep track of which screens have already been loaded. Once a screen gets loaded it's added to the grid and won't be loaded again unless the player has traveled far enough for another screen to overwrite it.

Next I finished camera movement so that the camera can follow the player vertically as well as horizontally. While doing this I needed to build a vertically oriented part in my test level and realized that it's quite difficult to do so with only solid tiles in such a small space. So I also added functionality for semisolid platforms which only have collision from above.

Finally I gave the player a mid-air dash as the original design calls for. Took quite a bit of tweaking to get what I was looking for but it's finally in. Here what is looks like when put all together.


My next goal will likely be an animation system and implementing some animations for the player. Player animations have already been planned out on paper as well and are pictured below. So I just need to turn them into actual sprites and then build an animation system capable of playing them.


Today my goal was to finish implementing levels. Levels need to be larger than a single screen for the game I'm designing so this means I not only need to load multiple screens from my level files, but I also need a camera that will scroll across them following the player. Loading multiple screens is simple enough for now. After loading the first screen from the screen table the program simply goes over each adjacent screen coordinate and then if a screen exists in the screen table with those coordinates it gets added to a list of screens to be loaded. Then every game update a set number of screens from the list get read into the background layers and eventually the objects placed on that screen be will spawned in.

Next up is the camera system and while I was working on that I also got to work on basic physics and collisions. The movement and collision system isn't terribly fancy. It simply decomposes movement into X-axis movement and Y-axis movement, then for each it scans along the objects movement vector to see if there is a solid tile blocking the way. If there is then the object moves up to the solid tile, otherwise it just moves across the entire movement vector. Despite being simple I still had a some trouble working it out and had to write some of it out on paper and refer to previous projects to finally get it working.


For the camera system I wanted the camera to smoothly follow the player and also not react much to small movements. So I defined some boundaries that if the player moves outside of the camera will move to be centered over the player again. Another important thing was to make sure the camera doesn't move into screens that don't exist in the level. The background that screens get loaded into is only big enough to fit 16 screens on each axis and since levels will likely be much larger than this. When the level wraps around the background it'll only overwrite screens if they exist within the level file so it's possible that sometimes screens from earlier in the level may still be hanging around. So I want to make sure that the camera won't make these visible.


And finally putting it all together. The player can now move, jump, and collide with the terrain and the camera will follow the player as they move across the level. Also at some point I added a small menu to the title screen. Still left to do is vertical camera movement and loading more screens as the player travels through the level. My next goals in no particular order are.

  • Finish player control by adding an air dash
  • Create an animation system
  • Draw animations for the player
  • Finish camera movement
  • Finish screen loading
  • Create game objects

However those will all have to wait for the next day.

A usable version of the level format is done and the game can now load a screen from a simple level file. I can also start cleaning up how many data files I have laying around since the level file contains all the data a level needs including tiles, palettes, and music sequences. Levels are laid out pretty much as written in the previous log. There are fixed blocks of data for the level name, music pointers, tile data, and palettes at the start of the file followed by a variable length table with pointers to screen data and a set of coordinates for arranging the screens onto a larger grid. Music sequences and screen data then fill the rest of the file. As a result a single screen test level takes up a little over 2 KB with most of that being used for tiles.

While working on level loading I also added a fancy scene transition animation and create a small animation where the name of the level is briefly shown when it begins.


At the end of the day here and I've made an okay amount of progress. The good news is I installed a spare graphics card into my main computer and while it still seems to have some issues I should be able to continue using for the jam. In the mean time I've also drafted up a data format for my level files and a brief list of objects to be used in those levels. I'll likely add more object types as the game is developed but these will give me some clear goals and direction on what I should be implementing.


Today's word is: Disaster. So at the very end of yesterday my graphics card died rendering my main computer less usable than I'd prefer. The good news though is that I have a laptop I can use as a backup. The bad news is that the laptop runs Linux and my main computer runs Windows which is what my game has been developed for up til now. I'd planned on leaving ports like this until near the end of the jam, but I guess I'm doing this one now. Thus today was spent writing a port of my engine for Linux, while at the same time desperately trying to get my main computer up and running again.

Fortunately my engine has a very small layer of platform specific code so the port didn't take nearly as long as it could have. Here it is running on Linux, with a bonus cat who came by to watch.


The day isn't quite over yet though so I should still be able to get something more productive done today.

Before getting to work on some gameplay I need to clean up my current testing code. Right now it's just kinda thrown together to get things working and make sure the engine works as expected. I prefer using an ECS inspired design that I used in a previous LOWREZJAM so I grabbed some paper and started listing out some components and systems I'd probably need. Definitely not a complete list, but should be good enough to get started. I also wrote down some ideas for level themes and made a diagram for game state management.


Afterwards I took the test from yesterday and updated it to use the new system instead. Of course this also means the major changes were behind the scenes so there isn't much to actually show for this. What can be shown is a proper title screen.


And that's it for today. This should hopefully be the last things I need to do before implementing levels and gameplay so I can get started on that tomorrow.