Saturday, March 31, 2018

Slow Spawning

Good news: The client engine is finally progressing. No more nights banging my head on the desk. The issues that have come up have been pretty straightforward.

And then there's spawning. This problem is huge. It's painfully slow and so far I have no solution. Here is the situation:

I allow two types of elements to be spawned: NPCs and Objects. The spawned element can have any number of child elements. This means I need to load all these elements, and SQLITE won't let me perform multiple statements in one call, so each query is its own call. SQLITE transactions are costly.
 
I need to have most of the child elements available right away so multi-threading isn't really a viable option.

Ugh.

So while the engine is working surprisingly well apparently I can't throw my helmet away yet. There will be plenty of head-meet-desk time until spawning is resolved.

Wednesday, March 28, 2018

Shocking! Smooth Sailing

It happened again the other night. I nearly quit the WorldWeaver Client rewrite. Two days of more baffling bugs and behavior that required adding bunny trails of logging throughout the code. At one point all output from the game stopped. That was just great. But then, out of nowhere all the bugs etc just kind of went away. Apparently that was the last major humo - so far.
I'm stick kind of shocked. The new client is fully functional enough to play the first level of Escape Apsis. Of course there are some bugs that need to be taken care of. I have them currently on the back burner. But these issues are fairly small and localized.
I added some stub creating functions to Admin utility, and need to go through all the code making notes and comments and cleanup etc. Then I need to do some intense, thorough testing so I can promote WorldWeaver.

Tuesday, March 27, 2018

The Right Tools

The right tools make all the difference. Obvious enough statement to make. For example, imagine being lost in the forest. Having a knife would allow you to peel bark to make cordage, you could make fire starter tools. You could sharpen sticks to spear fish with.
 
I've tried using fine grit sandpaper to create a smooth finish in wood. After hours of work I still hadn't achieved the finish I was after. I later bought buffer wheels and was able to get a mirror finish within minutes.
Sometimes the right tools aren't tools, they're people. I had to try rebuilding my laptop with the latest Linux Mint. It froze as expected. I used some of the techniques I had dug up online to get into the OS in nomodeset ... mode? I then was able to install Fluxbox. As long as I use Flux my laptop doesn't freeze. Well unless a dialog pops up or I try rebooting. Basically the OS is very unstable on my machine.

After fighting the freeze further I decided it was time to ask around. The linux channel on Freenode tried to help. Everyone there was great, but it was an issue no one online at the time had encountered. There was someone else, I should have gone to him first, but I didn't think to ask until tonight.

I consider @DorianDotSlash
a friend though I only know him via Twitter. So I reached out to him and explained what I was dealing with. In minutes he responded with a solution to try. A GRUB config change I hadn't seen yet. I gave it a try and it was exactly what I needed to do!

I am finally able to run the latest Nix distros on my MSI!

Thanks so much Dorian!

Check out his video feed here.

Wednesday, March 21, 2018

Well, USB-C.

I have a house full of USB rapid chargers and USB cables. I even have a couple of super 12' cables from the fair. Soon all of these will be useless. It seems the government is phasing out USB in favor of USB-C.  This is sad... And ironic if the government is choosing winning tech and forcing companies to build what they want in order to 'save the planet' by cutting down on waste - they just created an entire household of waste. USBs that would have been used for decades to come will soon be thrown into the trash because they will not fit any of our phones.

All that being said, I do like USB-C. It's nice not having to care about the plug's direction. Hopefully the fair will be selling super USB-C cables this year. I wonder how long it will take other tech to make the switch. Until then I'll have twice as many cables, and later half will be thrown away.

Savimg the planet.

Wednesday, March 14, 2018

Finding Hidden Treasure

I always run Vim with folding in tab level mode. Looking at less code is always preferrable. I am not a fan of scrolling through thousands of lines of code. The other night I was working and stumbled upon a VIM gold nugget that will change the way I move around in my favorite editor.

Which brings to mind just how often, after years of using VIM, I still find new surprises. True, I am not an active student of VIM. I don't go out and read books or tutorials on it. I am a fairly basic user actually. I'm sure I've mentioned this before, I don't use any plugins in VIM and my vimrc is very barebones. It sets up folding via indentation, a common backups directory, tabbing settings, line numbering, hiding ALL GUI elements, etc. But still, every week there is something new!

What I uncovered was navigating to the next/previous fold. I should have thought of it before, it is absolutely VIMish:

z,j or z,k
z,j Moves to the next fold.
z,k Moves to the previous fold.

If you didn't know this already, you're welcome!

Monday, March 12, 2018

Never Stop Never Stopping

It has been a rough week for WorldWeaver. I have put so much work into it. And I DO have a working client for it. - I just don't like it. There is so much I dod wrong, and am doing better with the next iteration. But it is having some issues. 

Maddening issues.

I have spent every night dealing with bugs that seem to make no sense. Case in point:

I am loading Attributes, and an Attribute can have a Type property set to 'attribute', and its value can point to the Attribute who's value it should use.
So you could define the Player template with a max_life Attribute, set to 25. Then you can define a life Attribute as type=attribute, and a value={player}:max_life.
 
This would set the Player's life to the max_life value (25).

In loading the Attributes I noticed only two Attributes were actually getting loaded, even though the ResultSet had seven records in it. I commented out everything in the ResultSet read loop, then I did seven iterations. I put everything back one by one. It broke when I re-added the assigning of the Type property. Type is just a String that is being set to a value. It's wrapped in a try/catch - but wasn't throwing an error. Yet there it was - seven iterstions without, two with. 

What the actual heck?!

After a lot of desk-to-head collisions, and nearly ditching the project, I discovered that a later method call was the culprit. But even after tweaking that to avoid issues there I'm still only getting two iterations. Even if I bypass it altogether when the type is blank (Only one Attribute has a type) I still only get two iterations.

We'll see how many times I decide to scrap the project tonight, before I change my mind and keep pressing on.

Saturday, March 10, 2018

UnitE!

I am still working through the ins and outs of Unity3D and the more I learn the more I love it. As it becomes less and less of a black box its elegance and simplicity, coupled with the power of this game engine is impressivr to me.
Maybe Unity is not unique. I've only tinkered with various GE's in the past, never really dug in too deep. Back then I was all about the graphics and just wanting to move the visions in my head to a world I could move around in. I was impatient. So to ve fair to other GE's, you rock too.

Anyway, back to Unity...
 
As much as I am a VIM-for-everything person, I think the tight integration with Mono/Visual Studio was wise. The real time debugger and code completion make life SO much easier for people with less C# / Unity scripting experience. And from what I've seen the scripting docs aren't too bad.

If you've never messed with Unity, check these links:

Thursday, March 8, 2018

Ink Love

I am currently doing some illustration side work. I am doing digital images so I'm using Inkscape. It's been a while since I've used it, so I've forgotten just how great Inkscape is. I am very obsessive when working with graphics. Everything is within its proper layer. Every object is properly named. Where applicable objects are grouped - and of course the group is named. I do a lot in the XML dialog. I like to arrange my objects in the stack from this dialog. I also do most of my object selection from the XML dialog.

Of course the object dialog is also my friend. I use it often to lock or hide objects. This is also the dialog I use to name objects, I can do so in the XML dialog but it is more tedious there. It's much easier in the object dialog where I don't have to touch my mouse to get it done.

I am definitely no expert. But I do love me some Inkscape.

Wednesday, March 7, 2018

Getting Up to Speed with Getting Up to Speed

If you read this blog you know that I am kind of slow. I'm pretty much always the last one to pick up on things. And so many times, something will dawn on me and when I tell other people about my amazing epiphany, they look at me funny and voice their suprise that I just now realized that.

I think I just had one of those moments as I was learning Unity scripting etc today. We've all heard the term 'getting up to speed'. I've never really thought about that term. I just accept it as being going from n00b to functional in a given task, tool, etc.

But as I'm learning Unity3D it has gone from some mystical anomaly of GUI interface and nebulous C# scripting of some sort to a surprisingly straightforward gamedev IDE. I can already envision how I will be accomplishing some of the things I will need. I understand beyond what the helpful videos are showing me.

I am getting up to speed. And finally that term took on meaning. When you begin to accelerate, it's tough. It is painfully slow and requires constant effort. But as you get up to your cruising speed, it becomes much easier to work out how you will solve problems, or even what problems you will be needing to solve.

I just now realized this.

5 VST Effects I Use in Every Song

VSTs are so great. I have a massive collection of free instruments and FX that I've tracked down. There are SOO many to choose from... B...