《A Lazy Programmer》4 hour tutorial … welcome to FFMMXVIII

Advertisement

The hair! It’s so glorious! See the majestic waves and … gasp … look, there are individual fibers wafting in the wind. Heh. That’s what the cinematics would show if I were in an RPG. Instead, I’m stuck trying to get this branch untangled from my scalp.

Indeed, Alex’s bent over form was arguing unsuccessfully with a tree that looked like a bright purple Bald Cyprus. As he’d been walking down the slightly overgrown gravel path towards the rat dungeon, he kept feeling branches scrape against his head but ignored it in favor of trying to move quickly.

This backfired when this particular tree got a branch tangled up in his hair. And now, off on his first monster-hunting quest he was … uh … gracefully trying to unwind his hair from the branch so that he could stand up and continue. He struggled for about 15 minutes before he gave up and broke the end of the branch off. By bending it back and forth he was able to eventually separate the end of the branch from his thick mop of hair.

I knew I should have cut my hair two weeks ago. Alex thought, But nooo, I was just too lazy to stop by a barber and get it done. I wonder if they have barbers here … whatever: when I get back tonight, I’ll ask Erin where I can go to get it lopped off. Hopefully, I’ll go bald soon like Grandpa so that I don’t have to deal with it anymore.

So, Alex continued his way along to the kiddie “tutorial” dungeon that all RPGs have: “Kill ten rats. Oh, in the sewers. Uh, bring me their rat tails. That’ll … uhm … thin the population down enough so that they stop eating my cabbages! Blah, blah, blah. I’ll reward you greatly! (2 small copper and a new kill X monsters quest.)”

Unfortunately, there’s no respawn here and I certainly don’t want to die to rats. Regardless of how much danger a given situation has, I’m determined to play it as safely as possible. Caution and preparedness win hardcore runs. The only difference between those runs and my life is that – I only get one chance and there are no guides to help me along.

So: prepare, be cautious, and fucking run away if you get in trouble. There’s no shame in living to see tomorrow.

Abruptly, Alex’s inner dialog hiccuped. He’d arrived at the dungeon entrance. There was an exposed face of a small hill. Limestone shelves predominated except for the entrance which the path led to: a granite arch built with seemingly no seams and carved to show a wide variety of monsters.

There’s no way anyone could miss this thing. Besides the arch, the black vortex which it encompasses is extremely flashy. Stars whirling into an abyss … it totally looks like some early RPG dungeon entrances but with better than 32-bit graphics.

And, though the central portion steals the prize for complete awe, the arch itself isn’t exactly mundane. Why would a rat-only dungeon have such an intricate entrance? The base of this arch has rats, sure, but immediately above that is a – hmm – valley of rest? There’s a pool which elves? fairies? are drinking from and a bunch of sleeping forms as well as even a few fruit trees. Then the rest of the arch has so many different monsters: slimes, spiders, some kind of flying mob … drakies, maybe? and then lizard men – kobolds.

This arch is too varied for just a rat dungeon. Helen must have been right: there’s more to this dungeon than anyone has ever seen before. Maybe there’s a hidden riddle or key to enter the rest of the dungeon. I’ll certainly search for something like that when I can clear out the whole first floor and have a decent reserve of potions.

Advertisement

Ahh, but there’s no time for daydreaming. Forward into the abyss!

And so Alex stepped into the span between the arch’s pillars and through the swirling black hole effect. His eyes were briefly occluded by a pair of stars and, once the light was gone, he found himself inside a new room. Turning around, he saw that the entrance was completely behind him with the same archway and carvings on this face as were on the obverse and the same black hole swirling within its span. He’d traveled completely through the 6-foot thick archway with a single step, however.

He blinked for a few seconds, disoriented by how simply the transfer happened.

I’d expected a bit of nausea, or maybe a feeling of pinching together to travel a wormhole, or something other than just taking a step and being inside. That was altogether anticlimactic. Well … no time like the present.

So, Alex turned again and examined the cave he had entered. This room was, helpfully, lit by monster cores with the light enchantment. Alex opened up his notes and immediately made a literal note to himself to bring a couple of charged light cores to dungeons in the future so that he wouldn’t find himself completely blind and surrounded by enemies.

Also kindly, the entrance had no monsters. He wasn’t set upon the instant he entered, so he could take some time to prepare if he had needed it.

Well, even if I forgot something as simple as a light source, at least I did practice casting Blade on the way over here. I managed to level it from one to three and learned that 6 mana has a significant amount of force within 3 yards and 9 mana gives me enough force to break an inch-thick branch off of a tree at 12 yards.

I’ll just define three variants now. 6, 9, and 12 mana variants so that I can cast it extremely quickly. I’ll call them ShortBlade, MidBlade, and LongBlade. Then I can say, essentially, “Cast ShortBlade! Cast MidBlade! CastShortBlade!” and form three spells rapidly enough to take out two short-range rats and one mid-range rat. It’ll be in Xigun, but it will still be far faster than repeating the entire spell each time.

After he’d defined the three spells successfully he cast each one once to be sure they worked, then began to sneak down the sole corridor leading from the room. This pathway also had light cores shedding a small amount of luminescence so that the center of the room was well lit but the floor and, especially, the ceiling lived in eternal twilight.

Definitely bringing a light source next time. Maybe tied to a belt around my forehead like those camping headlamps. I’ll have to – ah, there’s the first room on the left.

A gaping entrance appeared on the left of the pathway. Not rounded like it had been mined, but just an angled slice through the limestone that was darker than the path Alex found himself upon. As he came upon the entrance he was happy to see that it, too, was illuminated by light stones along the wall near the floor.

Sneaking a glance around the corner, Alex’s eyes rounded and his pupils dilated completely open. Laying with its rear towards Alex and curled slightly to the right was the biggest rat Alex had ever seen.

Look, I know that RPGs make a habit out of up-sizing normal animals to make them scary – but a waist tall golden-retriever sized rat??? That monsters’ teeth must be as thick as my thumb and as sharp as flint. And I’m supposed to let one chew on me for a bit to feel how painful it is before going around the bend?

Advertisement

Fuck.

Fuuuuuuck.

Okay, don’t panic. First thing’s first: let’s fix the spells. Redefine the ShortBlade to be 15 mana, then the MidBlade to be 30 mana, and the LongBlade to be 45 mana. Hope to god I don’t need it, but let’s make a new one called FuckBlade at 60 mana. And finally, the weapon to end all arguments, the ShitBlade at 103 mana: if I can crunch a high-level wolf from in a tree using that much, I can certainly end a level 1 wolf with the same spell.

I just hope I don’t have to use the ShitBlade then run away. Running with a mana-deprivation headache would not be fun.

So, screwing up his courage, Alex poked his head around the corner again and after three deep, steadying breaths began his first prepared assault against entrenched enemies. Well, he cast ShortBlade at the rat sleeping on the floor.

crunch

His ShortBlade sliced directly through the rat’s skin, fat, ligaments, and muscles until it encountered the spine of the monster just behind the midway point along those bones. There, it crushed the 5 vertebrae it encountered and proceeded through the rat to break several ribs and do massive internal damage. The rat’s blood squirted from the wound but disappeared almost instantly: the rat was dead and, as a monster of a dungeon, it was being replaced by the loot it dropped.

Where the rat had been peacefully slumbering, a small skeleton appeared upon the ground along with a single copper piece.

Alex had no time to examine his loot, however, as a few squeals had erupted from the depths of the room beyond the entrance he peeked so carefully around. Running rapidly two rats appeared from the left of the entrance and barreled down upon Alex.

“Cast ShortBlade! Cast ShortBlade!”, Alex chanted as quickly as he was able. Two more crunches later and the last rat died only a few feet away from Alex. He leaned against the wall of the pathway and slid down to sit with his legs sprawled in front and his shoulders slumped.

Fighting against things which actually mean to harm you is a hell of a lot harder than I imagined. These didn’t even really have a chance, yet I’m completely mentally exhausted. My fingers are shaking. Adrenalin is pumping – or something – and I’m just so done.

He sat there for a good few minutes in which he aged far more than the time elapsed. He breathed and simply existed. It was enough to exist. Slowly an impetus moved within him to continue. A drive existed that he’d never noticed before.

This is now my world. Hiding from the monsters won’t do anything. There will be an attack against the city in just a few days – and time will only bring more strength against me. I choose to gain strength now. I’ll risk my life – carefully like a miser spends gold – in order to gain the strength I need to survive, protect, and move forward.

Shit – my origin story is “And then I fought three rats and – fuck was I scared!”

Alex chuckled at his inner monologue and then laughed for a few seconds. Yeah, the rats were far more fearsome than he’d expected, but he had the tools he needed to kill these things pretty easily. And, after all, he’d learned his first, and most important, lesson about battles – survive!

I’ve not even been injured yet and I’ve taken out three of them for what would be 8 minutes of mana regeneration. I’m super fucking overpowered for a small number of these guys. I’ll take it slow at first and ease into getting comfortable with fighting these guys, then I’ll be able to take on more and more as time passes.

So, he collected the copper coins that each rat had dropped. He ignored the lizard skeleton the first rat had dropped as well as the rat tail that the second rat had dropped. He wasn’t sure what those things could be used for, but he wasn’t going to be lugging around trash when he didn’t have a good way to carry anything.

Second literal note to self: get some kind of bag of holding for loot. Probably better make that two bags of holding. One for messy things and another for gear and supplies.

He checked the inner portion of the room and found that it was simply a small space about the size of a closet. The two rats that he’d killed second had been just around the corner and had, probably, not even been moving at their maximum speed.

These things are quick. I’ll probably not really be able to retreat if I run into more than I can handle. I’ll have to be super careful before moving beyond the bend.

So, Alex continued down the path. He killed all the rats in each of the next three rooms rapidly. There were 2 in each of the rooms, so he ended up with 6 more small copper and constantly maxed mana. When he cast a single spell, the mana drain debuff spells would see that he was below his threshold and cancel themselves. He noticed the issue but didn’t stop to fix the spells because he wanted to get through these first five rooms before stopping.

In the last room, there was only one rat. Alex could see it from the entrance so he cast ShortBlade aiming at the wall and allowed the rat to run up to him and start chewing on his leg.

That … hurts … It feels like … ugh … like something chewing on my muscles. Fuck. Ow.

“Cast Shor – fuck! Cast ShortBl – fuck! Cast ShortBlade!”

crunch

As the final rat fell, Alex learned several important lessons: Getting damaged hurts just like it would on Earth. Casting spells is far harder when something is distracting you by eating your leg. Spell backfire headaches compound. Casting a shorter incantation definitely lowers the pain from a backfire. That headache on the first day was far worse than even this compounded one. Damn it, I’m taking a health potion.

Okay, last lesson for this excursion: health potions actually deaden an area as well as healing it. That’s pretty important. I wonder if I can just make potions that help to deaden the pain without removing it completely. I’d much rather be in complete control of my faculties while nearing death than simply passing out and falling to pain.

So, Alex took his lessons – and his single copper coin – and turned his back on the obvious left turn in the path ahead, walking instead back to the entrance of the dungeon. He was careful on the way back to peek into each of the rooms along the way to be sure that the monsters hadn’t respawned. They had not, so he made it back to the entrance room and sat on a convenient ledge near the portal leading outside.

I’m going to rework these debuffs while I’m waiting for the monsters to respawn. Obviously having them disappear each time I cast a spell or get hit by some kind of attack is less than ideal. I’ll want a way to turn them off manually without having to reach the threshold, but I’ll want them to basically be running otherwise unless I reach a truly dangerous amount in the pool.

Hmm …

Okay, here’s what I’m going to do: I’m going to calculate the drain amount directly from my new knowledge – 1 mana corresponds to 10 HP / MP / SP drained – and the link the spell can have to my interface. So, with my current HP regen of 1.53 HP per minute, I’d want to feed 0.153 mana to the DrainHP spell every minute. Since ThrottleHPDrain runs every millisecond, that’s 0.00000255 mana per tick.

I’ll only recalculate this value every 10 minutes. If my HP regeneration goes up in the meantime, I can deal with a few minutes of inefficiency to keep the spell running more efficiently the rest of the time. Having to check the timer is slow compared to just spinning through the loop.

So, ThrottleHPDrain will simply feed that amount of mana to the DrainHP spell every tick unless the total HP hits a new threshold. I’ll set it to be 60% of my total HP because I want to be as conservative as possible for now. If my HP drops that low, the spell will shut off so that I can get the maximum healing possible. As long as my HP is above 60%, but below the original threshold of maxHP – 2 * HPRegen, I’ll set the spell to feed only a minimal amount of mana to the spell – the new minimum will be 0.0000001 mana per tick – which should keep the spells active but not impede my healing too much.

And, finally, for the manual shut off, I’ll just add another input to the Throttle spells which will stop the spell whenever it receives an input. Then all I’ll have to do is send a bit of a mana to that input and the spells will shut down.

After a few minutes of tinkering, Alex had a new version of the DrainMP and ThrottleMPDrain spells ready so he left the dungeon and set up his testing Radios to keep Polly far away from him. After 3 explosions, Alex found his sole bug and got the spell working. He examined Polly to be sure, and then re-worked and tested both the HP and SP versions of the spell.

Once everything seemed to be working, he redefined the spells and cast them himself. Everything seemed to work fine, so he checked that the manual off switches worked, then recast them again.

Turning, he reentered the dungeon and started the grind. After his second run through the dungeon, he realized that monsters wouldn’t respawn unless he went outside the dungeon. After his third run, he realized that monsters would respawn as soon as he exited the dungeon. After his third hour running the dungeon, Alex noticed that the Throttle spells still weren’t quite what he wanted. His MP bar rapidly jumped around the upper threshold even when he wasn’t casting spells.

Well, that took a bit of thought, but what’s happening is that the other Throttle spells are draining a bit of mana for upkeep and that’s putting my calculation of how much mana to drain per tick off. So, then, the spell pretty quickly drops below the threshold I want it to be and moves around far more rapidly than the others. Waffling between two tiny numbers, the spell isn’t actually causing any harm because of the super-small value I’ll drain if my mana drops below the upper threshold, but even if there’s no problem with it I want a more elegant solution.

Elegant programming is beautiful and something that I can be proud of. What I’ve got now just looks like it was hacked together by someone who didn’t know the system … which it was.

I’ll refactor the whole thing on the morning the slimes are supposed to attack. For now, it’s good enough and I don’t want to waste time blowing Polly up which could be better spent killing dog-sized rats.

Towards the end of the day, Alex decided that he’d be doing his final run. On this last run, he let a rat chew on him for a full 15 minutes. He nearly broke down and killed the thing several times, but his patience paid off. At the end of the 15 minutes he saw a new line pop up in his changelog:

6:54 pm – Concentration stat change from level 0 to level 1

Fuck yes! Alex thought.

Concentration

This stat increases a person’s capability to fight through distraction and continue their current actions.

It’s my first new stat. I wasn’t even sure that new stats could be added. It’s a little weird given that the rest of the system seems to be focused on increasing your knowledge and allowing you to become stronger through that kind of power. But directly increasing one’s focus when dealing with pain is certainly a bad-ass way of allowing people to actually use their full HP bar – instead of simply fainting when they get hit too hard.

Alex immediately killed the rat, took an HP potion, then exited the dungeon and headed back to Scottstown. Along the way, he checked his changelog to see what he’d gained. Blade leveled to 7, up 4 levels which pushed Alex’s Force Spells skill up to level 3. His Constitution, Intelligence, and Endurance had all been pushed up by 2 due to his Vitality, Wisdom, and Metabolism going up by 4. But his Intelligence had also increased by another 7 throughout the dungeon run and his Constitution had gone up by 3 as well.

There’s some other way to gain base stats than just regenerating my pool. I mean, that’s obvious because my changelog has increases in Int without any corresponding increase in Wis, but it wasn’t something I knew before today. So … that’s another thing to ask about tonight.

I guess the good news is that, with those increases, my HP is now 250 and my MP is now 300 – though I feel like the MP could be much higher. Well, I didn’t level today so maybe there’s a limit on max MP dependent upon your level? Hmm … okay, after some calculations, MP should definitely be 524 at 21 Int. So there is some kind of upper threshold holding that back. maximum MP formula information

maximum MP formula

floor((A+log(Lvl))*100*floor(Lvl/10+1))

Where

A = log(200), Lvl = personal level

So … n*log(n) again, but this time the cap is with respect to level. While you can grow your base stats as high as you like, if you don’t increase your personal level, your excess base stats won’t have any effect.

Alex checked for HP and SP and found the exact same formula regulated growth there as well.

Well … now it’s clear why level 10 is such a huge deal for survival on Marin. The maximum pools for HP, MP, and SP all increase from 325 to 660. That’s an increase of 181% at level 10. No wonder everyone’s all in agreement that the survival rate of those over level 10 is so much better than it is for anyone under it.

While there will be similar bumps every 10 levels, the first one is so very important because it has the highest relative jump. At level 20, you’d only get an increase of 51% and the percentage will continue to decrease as you gain levels. It makes sense that even the goddesses made it easier to get to level 10 because they really want people to have a chance!

So, puzzling over these numbers and keeping an eye out for overreaching limbs, Alex arrived back at Scottstown and headed to the West Inn for some supper and a close to the day.

Erin arrived shortly after Alex had gotten meals for both of them and they sat and chatted through their supper. After a few minutes, Victoria showed up to eat too and they were all joined by Helen only a short time afterward. Alex asked about a haircut and Helen volunteered to clip it for him. Alex was surprised, but they went outside immediately and Helen used a spell which did the cutting. It took only a few moments before they were done and they headed back inside.

Victoria and Erin both complimented Helen on a job well done and they all sat back down to keep chatting. After a while, Alex mentioned how well he’d done in the dungeon and asked about the growth in base stats which wasn’t from regeneration. The ladies variously informed him that when fighting against monsters that were spawned, large usage of any pool resource would give bonuses to the base stat that regulated it.

These bonuses would fall off the more a person entered dungeons so they weren’t often mentioned. Bonus stats like this were the only way, however, that one could achieve the maximum pool values – though that was less and less likely as your level grew. When he followed up with a question about Concentration, Victoria promised to get him a list of auxiliary stats which could be earned.

Then Alex followed up with his observation about Concentration: “It seems like a weird thing to me, that the system would modify your physical body. All the skills and abilities seem to be focused on giving you knowledge and then letting you use that to grow stronger instead of directly altering you.”

Helen replied, “And what of the base stats? When you gain Constitution does your body not suddenly become more hale? You become literally harder to kill with an increase in this stat. With an increase in Intelligence, your body is able to hold more mana at a given time. With an increase in Wisdom, your body is able to reach out and pull more mana in, channeling it to fill your pool more rapidly.”

“The system modifies your body; it’s just somewhat sneaky about it. From what I hear, you had a pretty significant gut when you first arrived, but it’s nearly gone now. Just a few levels and the system is already modifying you to be closer to your ideal.”

Alex looked down and blushed – his inactivity gut was disappearing. Helen’s right. I’ve just been so focused on the two areas where I’ve only seen increases in knowledge that I’ve neglected the base of the whole thing. Even though it doesn’t seem like I’ll get Superman level of strength or the capability to run like the Flash, my body is definitely being slightly altered by the system every day.

A slight increase in either my capability to ignore pain or a slight decrease in the pain that I feel is not outside the bounds of what I’ve already seen occurring – even if I wasn’t paying enough attention.

“I … uh … thanks for correcting me, Helen. Also, my gut might have been larger than now, but it wasn’t – significant – just present.”

“Aww,” teased Erin, “I liked you just fine with your gut. Don’t worry about it. You’re obviously a person who works hard. You won’t have to worry about having a gut or tons of extra fat again under the system.”

“That’s true,” said Victoria, “I look quite athletic and I barely work. Just a few hours of mobility training with Sam a week and the system has taken care of the rest!”

All three ladies smiled at Alex and he found himself grinning back. He discussed the rest of his gains and was reminded to use Push as well as Blade so that his Force Spells skill would level up faster. He also made a note to go and get a second pair of clothes and shoes in the morning.

After ordering a final round of drinks, they all chatted about Helen’s planning for the slime siege, Victoria’s planning for a new spell to strike up at the slimes’ cores – here Alex gave her the final version of Parrot, Radio, and all his currently-successful spells written in Pigeon – and Erin’s day hunting game on the North East side of town where she found several deer which she sold to the East and West Inns.

Victoria and Helen left to go home and Alex and Erin took their bath together for the first time since she’d come home from the slime dungeon. They just washed each other and quickly left the room. They talked for a few minutes in his room about the party for the next evening and Alex paid Erin for the Inn.

Then, they made love slowly and carefully.

“Erin,” said Alex, “Thank you for choosing me. You’re a wonderful person and I enjoy the time we have together.”

“I love you too, Alex.”

“I love you, Erin.”

They fell asleep in each others’ arms, and Alex’s last thoughts were, Thanks, Phoebe. This is a town filled with decent folks. There are even people like Erin, here, who will help you through a difficult time; grow closer to you; but not bind you away from your dreams.

Thanks for the great spawn, Phoebe!

    people are reading<A Lazy Programmer>
      Close message
      Advertisement
      To Be Continued...
      You may like
      You can access <East Tale> through any of the following apps you have installed
      5800Coins for Signup,580 Coins daily.
      Update the hottest novels in time! Subscribe to push to read! Accurate recommendation from massive library!
      2 Then Click【Add To Home Screen】
      1Click