[Game]Planet Escape [wip]

It does the same using all the version I tried so far. But yeah, can’t wait to see what’s the next update will be like.

4 Likes

I haven’t been around much lately, but I do want to say that I have been (slowly) working on the next update. It’s hard to believe it has already been over 3 months since the last time I updated, but I have had a lot of stuff happening and not enough time to work on my hobby projects.

I am hoping that I will be able to finish the next update soon, though! It will have a few more additions besides just saving, including a fancy title screen thanks to @Vampirics! Also, @Turtle, I think I have patched that clipping issue by now, so that should be fixed in the next update too.

5 Likes

Great! And don’t worry, I think we all have less time than we want for our hobbies. Since Christmas I barely had time to work on anything for the Pokitto and that other small console I worked on before.

4 Likes

New version is in the first post, now with saving and loading! Other features include new “background” tile type that you can place and destroy but not collide with, new tree graphics, a new title screen with graphics by @Vampirics, a couple new decorative tiles, and several small bug fixes, including a fix to the issue with collision that @Turtle mentioned.

Getting saving working has taken a long time, and debugging it on the Pokitto was frustrating. That said, I actually initially implemented saving code for the computer first, and finally today had time to actually figure out how to implement the platform-specific Pokitto code, so it didn’t take that long to get working on the actual hardware. I still may have an issue with saving, as I encountered a bug where saving an initially generated world caused the Pokitto to freeze, but now I can’t reproduce it. Let me know if it freezes for you when trying to save for the first time. If it does, try making new worlds and saving them a few times.

I create a directory called pe_saves in the SD card’s root directory, and all the save files are contained in there. You can have up to 255 save files at once, although I haven’t tried having that many. For some reason, my file browser gets confused by the generated folder and displays it as a file, but when I look at the folder in the terminal, it seems completely normal and I can examine the save files within it.

All the other files on my SD card seem fine, and I think that there should not be any risk running this game on your Pokitto, although I cannot guarantee I haven’t done something weird without realizing. The game doesn’t contain code that deletes files, and all files I write to are in the pe_saves directory. If you want to delete a save, right now you would need to go delete it manually.

Let me know what you think and if you encounter any new bugs! I feel like I might have forgotten to test something, but I wanted to get this update released before this week started, because I won’t have any time to work on it this week.

5 Likes

The SD card API(s) is the thing I think most needs an overhaul in the library.

What file browser? Windows Explorer, OSX Finder, something Linuxy?

1 Like

I have yet to try it on the hardware. All I know is that I can’t create a POP file with a screenshot mainly because the game doesn’t start in the emulator window. But I will have a look at it tonight!

Thank you for your hard work!

3 Likes

Linux, specifically Thunar file manger. It cannot open the directory and displays a file icon, even though it identifies it as a directory. What’s strange is that the first time the directory was created, it displayed fine. Only after I removed the originally created folder for later testing did it start creating this broken folder.

Yeah, unfortunately it doesn’t seem like the emulator works at all with games that use the SD card. I would need to make a special version with the SD card code removed for it to work in the emulator, although I appreciate the help with making a new preview screenshot. The preview in the main post is now out of date, because trees look different now!

Thanks, I hope you enjoy it!

Man it was so great to come home to see this had gotten updated! The new save and load system goes seamlessly with the rest of the game. This game never ceases to impress!

4 Likes

Was able to play on it a little tonight. Good job! feels more and more like a complete game. Just need to add a goal and maybe some mobs and it’s pretty much done… Day to night cycle might be cool like in Minecraft. Gotta make a shelter before it gets dark! :wink:

3 Likes

Your comment about a day/night cycle is interesting, because it raises the question of lighting.

I have actually spent some time thinking about how I might implement lighting in the game. Everything on screen is restricted to a 16-color palette, but I think I’m free to swap the palette colors at any time, so it should be possible to darken or brighten the palette for daytime or nighttime. Unfortunately, that doesn’t allow for tile-specific lighting, so if it’s dark underground and I add torches to the game, setting different light levels per block would be difficult.

I could have an average light level determined by nearby torches, so the colors would be bright when many torches are near the player and dark when there are few torches. I don’t know how that would feel in the game without testing it, but I’m considering experimenting with this.

Another option would be to cover darker tiles with a pattern of a dark color and transparent pixels, obscuring dark tiles like a fog of war in strategy games. That would require more calculations and drawing though, and might impact the framerate.

I have some other ideas of things I want to do too, including an eventual goal (escaping the planet!). It may be a little while before the next update, though, because I have some other projects I want to work on and not enough time.

2 Likes

One option is to reduce the colour palette down to 4 colours and give each 4 levels of lighting, but it may not look as good in practice.
Either that or just have 2 light levels over 8 colours.

2 Likes

Good idea – Doom dis this, but it used 256 colors. They had a separate lightness gradient for each color. I used this in my raycasting demos too but in a different way – I made a special palette that allowed to make color lighter/darer just by adding/substracting 1 to its index. Not sure how well it would look with just 16 colors.

You could have more than 4 colors if you consider black/white to be the darkest/lightest version of each color – there’d be black, white and 14 intermediate colors left, which you could split to 5 colors by 3 brightness levels (one only with 2) – so about 5 colors with 5 brightness levels overall. Also with the dark colors we’re not as good at distinguishing the color, so you could have just 2 dark hues above black (e.g. dark blue and dark green could be the same), which would make more room etc. Color palettes are a science of its own.

Dithering, this would be easier and could be sufficient. You could also combine this with @Pharap’s suggestion – for example if you have red in 3 levels of brightness, you can dither between them to create very good looking intermediate brightness levels. This could achieve very good look and wouldn’t be so difficult to do (dithering means just applying a very simple formula on the pixel’s [x,y] screen coordinate). But I’d start simple with the black dithering and leave these graphics improvement for later.

1 Like

I think this is an interesting option that could work with a lot of games, but I’m not so sure about being able to make clearly distinguishable tiles of a lot of types with only 8x8 tiles and 5-ish colors. The screen doesn’t have a lot of space to label tiles with text, so it would need to be possible to know something is coal/iron/copper/gold/wood etc. just from the tile. The game has a decent number of tiles and I have already been encountering challenges with 16 colors. I would be interested if somebody more talented in art than I am thinks it’s possible to make a wide variety of tiles without a common theme and few colors visually distinct.

I’ll probably work on things other than the lighting for now, anyway. Until there are enemies, a day-night cycle won’t serve much of a gameplay purpose.

1 Like

After far too long, I have another update to Planet Escape! The newest .bin is in the first post.

This update includes lots of new features, including:

  • Combat
  • Weapons
  • Armor and equipment
  • A grappling hook
  • Crops you can grow
  • Mushroom soup!
  • Changes to world generation, with new things to explore underground
  • New crafting stations
  • A beacon block that serves as a movable spawn point and chest
  • Healing items
  • And more!

I took quite a while to decide how I wanted to do combat, which is one reason why this update took so long.

When you are first starting out, I recommend crafting a shovel and a club as soon as possible so you can dig faster and deal with enemies. Chests and a pickaxe are a good next step. Don’t forget you can store items in the beacon where you spawn!

There still isn’t a final goal yet. A few goals for now could be creating a farm, crafting a grappler, crafting jetboots, or crafting a full set of iron armor.

I need to change the preview animation, but I haven’t gotten around to updating my version of the emulator. I also haven’t tried overclocking the Pokitto yet, so I might be able to get a free performance boost from that. Oh, and I need to make a .pop file too! So much to keep track of, and not enough time! :persevere:

Old saves are unfortunately not compatible with the new version. I increased the size of data structures, which changed the layout of the save file. However, the game will not corrupt old saves, it just refuses to load them. If you had a world you really liked I can try to convert it to the newer save format if you send it to me.

9 Likes

OMG, can’t wait to try this.

4 Likes

Is it normal that the bats can fly through the dirt tiles?

Really more and more on the level of a Terraria for Pokitto now.

Edit: I know why it’s doing it but it is a bit weird that you can put a BG tile behind the decor table or any decor items. When trying to make it pretty with a brick BG, you can’t have the BG and the decor items. So if the BG is the blue sky, that makes like whole in the BG.

2 Likes

Oops, the bats shouldn’t fly through tiles. That’s probably because I’m spawning them too close to the player. I spawn enemies near the player without checking if there’s open space for them, as they will just rise through tiles until they reach an open spot. This causes a problem if a bat spawns in solid rock and then flies towards the player, because it can get close to the player before it has risen to an open spot.

I’m in a bit of a difficult spot with decorative tiles. Only one tile can be in any one spot at a time. I can’t add more layers without increasing the world buffer too much (it’s 128x128 bytes, one byte per tile), but I don’t really want to stream level data either. I’m not sure what I should do about it, other than maybe redesign some of the decorative tiles.

Thanks for the feedback!

2 Likes

Quick update: I have added an updated animation in the first post, as well as a .pop file for anybody using the new loader. Many thanks to @Vampirics for the icons and banner!

3 Likes

@wuuff for the first time I took some actual time to play Planet Escape and its incredibly good

its probably my favourite game on Pokitto right now, and my kids play it also

bugs:
the “stuck button” glitch keeps appearing. we need to compile this with button polling only mode

6 Likes

Thanks a lot, it means a lot to me every time I hear somebody is really enjoying the game.

I know what I want to do for the next update to the game, but it’s still entirely in my head. I expect it will be a long time before the next update. However, I think I’m only 2 big updates away from adding all the features I want to add (that is, features I have actual ideas for). After that, I can probably call the game “done-ish” for a while.

I had noticed that problem, and I very vaguely remember a discussion about that issue, but I don’t remember the solution. What do I change so it compiles with button polling only?