Developing Soilnar: Part 5 (days 37-54)
Soilnar: Danagen Industries sucks after implementing the things listed in the Soilnar plan of 2015.
I kind of expected it not to suck, but that's because I am an idiot. I'm slowly learning to expect myself to be an idiot.
It made the game playable, but not very good. The problems are numerous, and I would like to explain some of them. I think this will have some entertainment value.
That is what I wrote for an unpublished blog post at the end of March, 2015.
This is the Soilnar: Danagen Industries development log from 2015-03-27 (day 37) to 2015-04-13 (day 54).
By now I've pretty much forgotten the exact situation back then, six months ago.
However, I have my version control logs to help me, so I'll just go ahead and describe what I did after that. I continued work on day 38, the date being 2015-03-28.
Day 38: I wrote down some quite ambitious long-term goals and suggestions, most of which probably don't actually matter. However, they are kind of interesting:
- Less horrible progression from the start of the game: * New starter ship? * ? - Random renewing of underworld tiles when there are no functioning ships or structures on them - Mechanics that cause one player's trash to be the resource of another have to be embraced - Ship builds determine what is trash and what is not - If external war is used, then it determines it too - The world has to have layered ore formations - Different cutters must be installable to ships - It has to be written down that there are different cutter types - The crafting tree must be easily viewable from the standpoint of finding how to create something - Sounds matter - Bring back hidden ore density (visible from nearby) * How to find ores after looking up requirements from crafting tree? - Possibly use the external war mechanic * How are sides picked in the war?
For example "layered ore formations" means such world generation where some harder tile surrounds, in a quite circular fashion, something else that is possibly valuable.
Often I just forget or abandon these plans and move on. I have a rather vague initial concept that I am seeking, and all of these are just possible means to that end. What now follows is just some random grunt work to make some things better.
I made it so that the game view has to be explicitly focused for it to read keyboard input. This makes the other UI to work predictably and usefully with the keyboard, as for example scrolling was inconsistent and annoying without this modification.
I also finally got rid of the movement buttons that haven't been working ever since I adopted the Intrusion Underground driving mechanics into Danagen Industries. I don't plan to have those buttons anymore. Also I did some unrelated minor UI fixes.
Day 39: I added some things to the design log:
- The world has to have layered ore formations + - Try to come up with a system that maximizes this + - To avoid spawning players in untraversable positions, define that the + center area of each region does not contain hard-to-mine ores and spawn + players there - Different cutters must be installable to ships + - Cutters must have a limited lifetime + - If the ship can't cut a tile, the tile should be black + - When trying to cut, client should inform the user of required cutter +Misc. ideas: +- Such a gameplay mechanic that ship's engine oil must be changed at a certain + interval or the engine will start getting permanent damage that can only be + fixed by rebuilding the engine at a high cost +
I also added some things to a to-do list:
+- The starter ship should probably have a repair crane installed (instead of a + laser turret, if there is no space otherwise) + +- Repair crane should repair automatically; get rid of the repair button + +- Possibility to configure laser turrets + +- Add a way to replace a ship's cutter + * Add slot with "cutter" resource + +- Make natural ores not always mineable by the default cutter
This design logging and to-do wiggling happens all the time. Most of the time I abandon the things in the design log, and I tend to halfheartedly crunch through things from the to-do list after they have been there for far too long.
I modified the world generation to not generate underworld content based on overworld tiles, but rather to primarily generate the underworld and derive the overworld from whatever ended up to be seen in the underworld.
Day 40: I switched players to spawn in a TE1000 again for convenience while testing, and while being unsure about how spawning should happen anyway, and added a new addon type "cutter", for extending the ship's digging capabilities. I left the actual effect unimplemented at this point.
Day 42-47: I started a large rework on tile generation, which initially resulted in a prototype system where there were ore types A...D with grades 1...6. This allowed balanced possibilities in progressing the mining capability of a ship, by kind of reaching a larger area of the ore type/grade 2D grid when installing more cutters to the ship.
To complicate things even further, I also made minerals to have a quality value which was independent of the other things. It was only visible when the player drove close to a tile that contained some mineral.
Day 48-53: Based on the 3-dimensional A-D/1-6/0-100% mineral system I made a manufacturing system based on blueprints. It worked so that you first needed a factory, and you needed a blueprint for whatever you wanted to make (these were found randomly in the world), and when you put the blueprint in the factory, the factory allowed you to fill in minereals required by the blueprint. The quality of the end result dependend on whether you managed to supply a good enough match of minerals compared to what the blueprint required, and if not, you could still execute the blueprint, but the end result performed badly.
While working on the UI to support all that, I made a lot of general UI work for nicer item listings. I also finally implemented the cutter add-ons, and removed the ship dashboard panel as at this point after various changes it had become useless.
Day 54: I switched to a new VPS provider and decided to run OpenBSD in there, so I ported Soilnar to run on OpenBSD. It didn't require a whole lot of stuff, but there were a bunch of miscellaneous things in the build system and C++ code, like having to explicitly call bash to run shell scripts that depend on bash, dropping "-ldl" from the linker options and using the "md5" shell command instead of the "md5sum".
Okay let's consider that enough for today. I need to continue this soon though because day 54 is still 154 days ago (today is the 209th day) and I want to get to writing about more recent things too...
- 2015-09-15: Developing Soilnar: Part 5 (days 37-54)
- 2015-03-23: Implementing things #4 (days 10-36)
- 2015-02-28: Implementing things #3 (days 6-9)
- 2015-02-23: Implementing things #2 (days 3-5)
- 2015-02-21: Implementing things
- 2015-02-19: The Soilnar plan of 2015
- 2015-02-12: What the fuck?
- 2013-11-24: Random Dev Notes #1
- 2013-10-26: Soilnar Progress
- 2013-10-11: Third Iteration: Intrusion Underground
- 2013-10-02: Check Twitter
- 2013-08-09: Scaling: The MMO Kind Of
- 2013-07-27: Soilnar July Update Part 4/4
- 2013-07-26: Soilnar July Update Part 3: Bitaeli
- 2013-07-24: Soilnar July Update Part 2: Network Optimization
- 2013-07-23: Soilnar July Update Part 1: Scaling
- 2013-06-20: Miscellaneous Questions
- 2013-06-16: Ternadim Progress
- 2013-04-01: Soilnar April Update
- 2013-02-02: Project Soilnar
- 2013-01-31: First Post!