FOSS games by a blind programmer
I decided it was finally worth posting something to Steemit again. I really didn’t want my blog to be filled with nothing but rants about how much I hate being blind and hate life and etc so I held off until I felt I had something worthwhile to post. Well, maybe this isn’t all that worthwhile but it's something.
Programming wise my progress with D has been chugging along better than I’d hoped. I have several game projects on the go, none of them playable yet, but they’re getting there. My main focus is games that I myself can actually play and enjoy which means things with a stupid level of complexity and depth. My main project is essentially a turn based, text based version of starcraft mixed with FreeCiv mixed with Aurora 4x. I suppose a name for the moment could be GalCraft. The idea goes that it will have several layers of maps. Layer 0 maps will be more or less the same as a standard map you’d expect from starcraft. Layer 1 maps will be world tiles similar to what you’d see in FreeCiv, each one is actually a whole L0 map. Layer 2 will be either a region map containing multiple L1 maps or a solar map where each tile is an entire planet or equivalent, otherwise the solar map will be Layer 3. The initial idea is to take the standard concept of a game of starcraft but play it out across maps as large as multiple solar systems. I’ve got plans for things like boardable/capturable ships and customizable building construction ala a stripped down version of minecraft. So instead of just building a barracks for example, you would have a barracks component that you would use to construct a building that functioned as a barracks. Ideally I wanted to have swappable unit equipment and per unit supply management as well. I also want the ability to build multilevel structures both above and below ground. I wanted tunnelling to be a major part of the game. Deep space and near orbit battles as well. I don’t care if a turn takes an hour to update, I want everything in there.
Naturally the first playable version of this will not be anywhere near as awesome as all this might make it sound. I’m currently working on Layer 0 stuff exclusively. I figure it will be much easier to start small and build big later. I’ve got procedural generation working for L0 maps although I haven’t implemented units yet. Before I get them introduced I’m creating a generic menu library to make creating them very easy for me because controlling all of this in a purely text based way that even blind people can understand is going to require a LOT of menus with a LOT of data readouts. Then I’ll work on a basic save feature. After that I’m going to have to get to work on multithreading because goddamn there is going to be a lot of processing going on. I know you’re supposed to do the multithreading first but I’m still just trying to figure out how to code the basics of this in D. I don’t have time to throw multithreading in on top of all of that. Eventually I’d like there to be multiplayer but that’s far outside my skillset right now. Let’s just get something basic working first.
The second project I'm calling Space Mercs for the moment. Basically its supposed to be Cataclysm: Dark Days Ahead in space. The initial premise is that you are the captain of a ship with a full NPC crew and you basically do whatever you want with it. I want the physics to be as in depth as possible. Not necessarily perfectly realistic, but in depth. If you are familiar with a game called Space Station 13, especially the FTL 13 server, that should give you an idea of what I’m shooting for. I want full power system management, atmospherics, telecomms, medicine and surgery, structural integrity and the like modelled for this. The good thing is that the code for Space Mercs and the 4x game will be largely cross compatible at the beginning. Most of the work I’m doing on the Layer 0 stuff now will just get recycled into Space Mercs and vice versa. The ability to board ships in GalCraft will just be a simplified version of what you can do in Space Mercs. So I’m effectively working on both of them at the same time, or at least that’s the idea.
The third is something I’m calling Open Darkness which is inspired by Darkest Dungeons. I wanted to take the basic mechanics behind DD and grossly expand them. It is a much, much simpler project compared to GalCraft and Space Mercs. Although I’ve done little direct work on it thus far I do undestand the logic behind how it will be laid out. The basic idea is to take the room and hallway map system DD used and add in a whole lot more randomness to it. Also, I want it to potentiallly be an open world with more than one hamlet you can visit and more than one party on the go at a time. The idea is that you were trying to run a guild and you need to manage all the boring economic details of that. Hiring people, making sure you make enough money so people don’t quit. Keeping people alive, keeping your reputation intact, etc. The idea was you’d start off in some town similar to DD but instead of just taking jobs that would generate a dungeon map of rooms and hallways you’d have a persistent world map. I was gonna think up some generic story about how the world is in dissarray or something to justify how you start off but haven’t gotten that far yet. The goal would be to explore the initial areas around your starting town and secure them against creatures. Then, push out and find other towns. Start trade routes between them and grow your influence. Find dungeons, forests, caves and whatnot to explore and take various jobs based on world events. I didn’t like the combat system of DD so I was considering either using a classic final fantasy system or an expanded 2d grid system. A hypothetical battle could be played out on two oppossing grids who’s size depends on the terrain. In this case lets say 3x3. Where now not only does you position in line matter but your horizontal position as well when it comes to what abilities you can perform and where.
I’ve been conceptualizing a lot of how I’d do the procedural generation and randomizaion for the map and have been designing a basic structure for how tiles and encounters work. Some of the work on tiles is getting recycled from the work I’ve already done on GalCraft and the encounter system would be used as a framework for both OpenDarkness and Space Mercs. One thing I can’t decide if I want is a full blown relationship system. I figured that Darkest Dungeons had a good idea with the whole stress thing but that ain’t deep enough for me. I want people to fall in love on the job and betray each other and get all heartbroken if friends die in front of them and so on and so forth. All of course with related stat and ability effects. But I have another fantasy RPG project concept that this relationship system might be better suited for. A Dungeons and Dragons or Elderscrolls esque thing that would be very story/lore/character heavy.
I want a lot more depth with how equipment works, none of this generic direct upgrade nonesense. I want you to be able to pick and choose the exact weapons, armors and other equipment every individual guild member has. My initial realease of this will likely be a very simple, linear, single character dungeon crawler where you start at room 1 and go room to room in a straight line. Fighting things in very simple pokemon esque turn based battles and collecting loot until you eventually die. This would be just to get a basic grasp of the randomly generated encounter framework. It would probably stay like that for quite awhile while I implement different equipment types and stats. After that it would become possible to split the project and make the fantasy RPG as well. Either way I’d likely be working on building the party and combat grid systems for Open Darkness and then working on a simple mission system with a home town. But right now I’m at the very early stages of all that. Thankfully the menu library and save systems I’ve been working on are being designed to be generic enough to be easily used with this project as well so there shouldn’t be any extra work there.
The last project I’ve thought about is very pokemon esque. I was thinking of calling it DreamCatcher. The idea is that you battle and collect “thoughtforms” that form your party. Very simple, stupid simple. I don’t really have many grand plans for this one beyond creature types and so forth. But it’s battle and encounter system wil form the basis for the pre-split OpenDarkness project or vice versa. As will it’s very simplistic town and region system.
Naturally when I do release the first version of any of these they will all be free and open source projects because proprietariness is for megalomaniacal losers that think they're special.
I’m planning to design all of these to be very modular so that anyone can make any changes they want. Although all of these are being designed with blind people like me in mind I want them sight capable. As in, I want it to be really easy for someone to come in and create a graphical tileset for GalCraft for example. I also want it to be very easy to convert certain projects from turn based to real time. As a result I’m measuring everything in ticks. “Turns” advance a customizable number of ticks. That should make it very easy to create a real time “Ticks per second” system for people who want it. I don’t like the idea of making things just for the blind just because I’m blind. I want everyone to be able to enjoy it the way they want. And I want to make it as easy as possible for other people to do that. I don’t know when the first release of any of this will happen nor do I know exactly which project will release first. But I’ve been working at it pretty consistently so it’s just a matter of time. I know someone will tell me I should just pick one project and do it to completion but I don’t work that way. I will get bored if I try to do that and if I get bored enough it won’t be fun anymore and I’ll quit.
Naturally ask any questions you like.