The Repro iOS app and website will go offline next week.
It’s been an interesting project. I built it from scratch and learned a lot making it. Wrote an iOS app, handled user feedback and went through several updates, later I also built and maintained a server backend API and an accompanying public website. Overall, I still like the idea but the thing is that I like some other ideas even more and need more space to pursue those.
Added basic support for editable “triggers”. As I mentioned in the previous entry, the original Devastro used this approach for setting up win/lose conditions for each level.
Similar to Unreal Engine’s Blueprints – but less sophisticated, of course. Great for things like: “to win this level, the player needs to kill all enemies, destroy all saucers and find the red key”. I can also easily setup areas that will spawn more enemies when the player enters, events that happen when an item is picked up etc. all without writing any extra code.
The difficult part was to maintain inter-entity links – in the game, the editor and also on disk. The new entity system helped a lot – when saving a level to disk, I store the “index” part of the Entity ID and when loading, fill in the correct “generation” after all entities are loaded.
Triggers will help me add a lot of variety to the game using a limited set of tools. Can’t wait to explore all the possibilities.
Here’s my reaction to a reddit thread where a bunch of people were wrong about something. It was about the fman file manager and how the author had spent over 3000 hours making it.
Some people argued that making a general file manager application was “easy” and the author of fman had spent way too much time making such a simple app.
Wrong! Anyone who goes to make a tool as general and versatile as a file manager deserves huge respect.
Doing a UI prototype for two pane file list that lets you browse files is EASY. Making a file manager that actually helps you manage files is HARD.
Let’s see what needs to be considered when we try to COPY A FILE:
All OS versions
Filename length limits
Special character encoding
Handle and report errors
Detailed progress indicator
Estimate remaining time
Interactive options to overwrite/skip/ duplicates
Correctly copy attributes, even when support varies between src/destination
Special files such as /dev/zero
Block size (20 byte file can use 4KB of disk space)
Optimize for SSD/HDD
Optimize for same-volume and cross-volume, cross-device copies
All this must work 100% of the time, on 100% systems, otherwise someone is going to lose their data.
I don’t even know if fman actually takes care of all that, but my point is that I can imagine one could easily spend a good portion of development making JUST THIS and I would consider it a great achievement if it actually worked.