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.
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.
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.
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.
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?
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!
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!
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!
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.
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.
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.
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.