There are some rough spots, and there are a couple of details left to paint but I think they came together in the end. Next week it will be back to writing around here.
Current mood: discouraged
Glue failed pretty spectacularly. It's okay though. I have a plan to fix it.
Best Games - super Sprint
There should be no world in which spinning a steering wheel as hard as you can and then grabbing it into a dead stop allows you drive a race car. The front wheels on your average car can only pivot over a small range before they become useless for actually turning. At speed this is even more true. Your steering wheel is nothing like the wheel of some pirates galleon it can't actually turn a full 360. There would be no point to it and it would do nothing to help you with control of the vehicle or feel for the road. Super Sprint requires that you spin that wheel and get good at it.
Controlling the ultra slippery cars of Super Sprint is all in the wrist. Well, the wrist, forearm, shoulder, and maybe the hips. Can it be played without throwing a significant amount of your entire body into it? Maybe, but I can’t see how that would be fun. Success at Super Sprint requires very physical interaction. The really interesting part is that the interaction you are required to do bears no resemblance to the activity the game is asking you to simulate. What you are doing is nothing like driving, but it feels like driving a race car. Or it feels like what you imagine driving a race car would feel like.
So, in my research I couldn’t find any technical description of how the software in Super Sprint actually reacted to a player manipulating the wheel. I don’t know for sure, but examining it from the outside, it seems like Super Sprint doesn’t really care how fast the wheel spins. The cars seem to have a fixed rotation speed coded into them. Spinning the steering wheel faster than that would have no extra effect. What’s more, the wheel also has no actual center. It reads rotation clockwise and counterclockwise, but it doesn’t seem to care what position the wheel starts in. It’s only reading rotation left and right. That means that you can spin the wheel left very hard, stop it immediately, and rotate it slightly to the right and the cumulative effect would be that the car would veer sharply left and then instantly center and start turning right. Oversteer does not exist in the physics model of Super Sprint.
You don’t steer the cars in Super Sprint like you would steer a real car. You steer the cars, speedy, drifty, open wheel race cars, like you feel like you should. Physically, drastically, and with no small amount of style.
Super Sprint doesn’t even attempt to be an accurate simulation of driving. Instead it tries to recreate how we pretend to drive. The over exaggerated pantomime of winning an F1 race. It’s like air guitar with a steering wheel and it does it fantastically.
Super Sprint is one of the best games.
I’m still thankful for the myriad array of wonderful games being created. I’m thankful for well told stories delivered in all the ways that it’s possible to tell them. I’m thankful for unprecedented access to excellent music and art.
What I’m really thankful for, is that I get to enjoy all of these amazing things with my family.
After writing any story comes the second, less fun, but maybe more important part of the process. You have to reread it, edit it, and probably rewrite it. At least you will have to rewrite chunks of it. I posted a story last week that did a lot of what I was intending for it, but felt a little flat around the edges. I had created for myself the problem of writing distinct characters with little or no way to actually emote. There would be no "Jim felt" or "Lisa thought" in this story. There would be no 'AI develops human personality' in this story. Still, I very definitely wanted these cleaning bots to be distinct characters with their own motivations and personalities. If you get to the end of this story and you don't know how :6b99 'thinks' or 'feels' and you don't see how its personality is affected by the events of the story, then I have failed.
I had also created the problem of character that are all referred to as 'it' and all have difficult and jarring names. I needed to make sure that the reader could tell which of the bots was being written about even if you skipped over the names and didn't really register them (I skip them almost every time I read it).
The first pass, I didn't think really solved all of these problems and may or may not have invoked an empathetic reaction in a reader. May or may not, as you can probably guess, is not really what you should be going for in story telling. Much of the writing is a little too dispassionate and technical as well. It suits the characters, but it's alienating to the humans who actually read stories. Dumbing down a story or being unsubtle with a point isn't really what I was going for either. I think the knew changes bring the story closer to what I had imagined.
Let me know what you think. Better? or should I go back in for another round of rewrites?
Early morning sunlight plunged down constructed canyons catching in the corners. Tall lines of silver and gold marking the silhouette edges of towering structures. Buildings with cores of wood and stone, bound in skins of steel and glass, adorned with effervescent films and baubles of diamond and silicone. Buildings cocooned in all the eras they had persisted through. The stratified clothing of times past. All of these layers humming with the constant flow of electricity and light. A city roused awake like a forest opening toward morning.
All of it an illusion of course. The city was always awake. Always alert. Always buzzing and moving and breathing with activity. The city, to its memory, had never rested. Even now, before the most active portions of the day, small tendrils of the city flicked and darted to clean and polish and organize. Each one an independent player in an orchestra of activity.
Sliding briskly along a tiled floor, a minuscule cleaning bot (designated d232:bd2c:c34a:c385:f487:d5bc:af34:6b99 V12.4) attempted to polish away a patch of grime. Its compact energetic body had managed to scrub more than three-quarters of the floor in the last hour before sunrise. It paused ever so briefly to consider time. it would need to revise its pathing plan if it intended to keep to its desired schedule. It had never slipped on its schedule. It had recently reduced the accepted levels of cleanliness in its plan by a full percentage point to increase the pace. :6b99 put a very high priority on keeping to the schedule.
For most of its service cycle :6b99 had worked together with a team. Its main counterpart (designated d232:bd2c:c34a:c385:f487:d5bc:af34:d1b8 V8.7) had slowed significantly in the last few days. The adhesive coating on one of its drive wheels had been peeled away by a rough patch of aluminum edging. Now it would spend an unacceptable portion of an activity period spinning on the spot, unable to overcome the friction generated by its cleaning brushes. Every so often the damaged drive wheel would catch and :d1b8 would make a few solid laps of the kitchen.
Every cycle the cleaning bots would engage in a few nanoseconds of organisational communications. Typically this meant that they would share potential schedules and planned routes, or offer each other new predictions for changes in the kitchens menu. The prep, chef, and server bots never shared their predictions for the menu. Tastes and requests were always changing and they had determined that offering predictions to the cleaning bots impacted their efficiency. :6b99 had recently purged the archived memory of a communication with a server bot. It still held onto the timestamped record that a communication occurred, but the content of that communication was lost to the ether.
:d1b8 assured :6b99 during the evening communications that it was adjusting the timing of its damaged wheel and was testing patterns that would help to keep it on schedule. It also suggested that the current cleaning cycle could be extended slightly to keep up a maximum level of cleanliness. They both made note of the minor differences in their plans and schedules. :d1b8 suggested a test period of no less than 8 cycles to see if they could balance out their goals. :6b99 agreed but privately flagged the schedule as a red level high priority.
A day later, over an inactive cycle meant for recharging, :6b99 assessed and concluded that :d1b8 was slowing the entire cleaning time by more than thirty-six minutes. It quickly sent a request up to the Local Operation Management System. :d1b8 should, it requested, be repaired or recycled to restore the schedule. LOMS responded almost instantly. Resources, it said, were not yet available for a full recycle but a repair would be attempted soon. :6b99 also sent a message to :d1b8 that it should send requests for repair or recycle to LOMS itself to improve efficiency in the future. :d1b8 had not replied.
Shafts of pale gold danced off drifting particles. Early morning sunlight angled itself through the newly opened metal shutters and into the kitchen. Stone countertops worn into shallow bowls from constant use glistened as sunbeams slowly swept the room. Soon there would be a whirring of activity as the kitchen hummed to life, but for now only two small ,buzzing shapes presented any sign of life.
:6b99 finished with the spot of dirt it was working on, marking it as visually 73% cleaner. Standard settings would demand the visual cleanliness of any single patch of floor be 80% or higher. On this schedule, 73% would have to stand as an acceptable minimum. It rounded the corner of a counter and narrowly avoided a collision with :d1b8. The hobbled bot had come up against a kick plate and was trying to break free of a groove in the tile floor by repeatedly lurching forward and backward. With the counter in the way, it was having trouble generating any speed. :6b99 made a deft juke to the left to avoid the other bot and continued on its way. It stored a quick note to send another request to LOMS during its inactive cycle.
:6b99 spent most of the lunch rush nestled into its recharging station against the back wall. The tall slender forms of prep and serving bots zipped about the room ignorant of its presence. Chef bots slid back and forth along the length of the counters, chopping, stirring, combining ingredients much as they always did. :6b99 noticed one small change to the central prep bots routine as it adjusted to an uncommon recipe. LOMS or COMS must have sent a request down to the prep bots that the market of preferred tastes had changed. As old recipes fell out of favour, at least one new recipe always took its place. New recipes meant new plans, but prep, chef, and server bots never publicly filed their plans or made them accessible to the cleaning bots. They had decided that informing cleaning bots of minor changes would impact efficiency. If LOMS was in the loop, that information never made its way down to the cleaning bots. :6b99 chose to get ahead of the problem and reworked its plan for the next cycle. The small change would mean a fair bit of time saved since it was harder to clean the floor where the prep bots had worn through the tile to the concrete below. The central prep bots new path took it over a relatively unused patch of smooth tile. With the new plan confirmed :6b99 took a moment to reduce power usage and charge more efficiently for the next cycle.
The sound of :d1b8 being dragged across the tile by the eastern server bot sent an alert up to LOMS and back down to every bot in the local network. :6b99 sparked back up to full power mode, ready to deal with any immediate mess. It watched as :d1b8 caught on the chipped corner of a tile and was sent scuttling off into the wall. It bounced off with a dull clunk and spun wildly along the baseboards. It finally settled in the corner, upside down on a pile of filth that their rounded bodies could never quite reach.
Once there had been a third cleaning bot (designated d232:bd2c:c34a:c385:f487:d5bc:af34:361b V2.0). It had been responsible for the corners and under the ovens. :361b had three extendible brushes that it would use to deal with places the other two couldn’t reach. It had broken two brushes in one cleaning cycle and received only one of the replacement brushes it had requested from LOMS. LOMS had forwarded a reply from COMS stating that resources were not yet available and the second brush would be delayed.
:361b altered its pathing and plan to clean with two brushes. :db99 had been forced to reroute its own path to accommodate :361b. The cycle was slowed slightly, but cleanliness was maintained to a high standard.
Every day during communications :361b would inform the other two of the state of its brushes and any communications it had with LOMS about them. It kept very detailed records on the quality of the bristles, any nicks or scratches to the extendible spines. :361b would request that one of the other two bots conduct a quick visual inspection of any part of the brushes that it couldn’t examine on its own. The other two would occasionally comply, but they would more often decline citing a lack of available time in their schedule or a desire to maintain a high energy efficiency or a need to keep communication channels clear and not clogged with image and video traffic.
:db99 had been powered down when :361b had broken its third and last brush. :361b often ran at slightly different times than the other two to keep to its own schedule. When the next cycle started :db99 found :361b sitting idle in the middle of the floor. It had moved into the usual path of one of the server bots and sat, powered but idle. When :db99 had sent it a message requesting that it move off to the side and contact LOMS, :361b had actively ignored the request. :db99 decided to push :361b out of the way and tucked it neatly under one of the stoves. It readjusted its cleaning plan to account for the newly inaccessible spots. Corners and unreachable areas would have to receive a lower priority.
Laying on its back wedged into a sedimentary buildup of grease and cut ends of rotting vegetables :d1b8 made vain attempts to wriggle it’s way free of the corner. It spun its brushes and ran its one good drive wheel in oscillating patterns. The self-righting mechanism seemed to be mired in the grease and mold pressed into the corner.
:db99 sent a request to LOMS. LOMS responded that resources were not yet available for a replacement or recycle and a repair would be attempted soon.
:db99 quickly adjusted its plan and revised its schedule to minimize recharge time. It also made a note to reduce visual cleanliness if necessary but decided not to factor that into its plan just yet.
:db99 paused briefly over a patch of clean floor and considered the speed and impact force required to free :d1b8 from the corner. Ultimately it decided the risk was too high and opted to leave :d1b8 where it was. It also made a quick note to reduce requests to LOMS by 80%. Requests had been negatively impacting efficiency.
:db99 spun counterclockwise and headed for small pile of crumbs in an aim to stay on pace.
Orange bands of sunset dipped gracefully behind the backs of looming buildings and the small kitchen was briefly dimmed. New hues of purple green and pink splashed across the counters as the artificial lights of city rose to chase away the dark. The city never truly slept. It only dimmed briefly and prepared for the next cycle.