What's New in Engine 3.3.3
by The SteelSeries Engine Team
We recently released Engine 3.3.3, with new features and new devices. Let’s look at what 3.3.3 includes.
We recently released Engine 3.3.3, with new features and new devices. Let’s look at what 3.3.3 includes.
When I first wrote GoLisp I wasn’t overly concerned with space efficiency as the immediate use was quite small scale. I was also fairly new to Go at the time. As time has gone on, we have been writing more and more production code in GoLisp. Space and time performance is something that we would now like to improve as we go forward.
Recently, I had the pleasure of designing for the SteelSeries Sentry Streaming Overlay. The Sentry Streaming overlay is a software application that allows viewers to see where the user is looking when they play and stream their favorite games.
Since this was the first product of it’s kind at SteelSeries, there were many Design and Usability decisions to be made. Let’s go through the list and discuss how we went about addressing them.
We recently released Engine 3.3.2, with new features and new devices. Let’s look at what 3.3.2 includes.
GoLisp now has a few basic concurrency primitives built on top of Go’s goroutines and channels.
Since GoLisp powers our software it’s evolution is largely driven by our needs. This is a case in point.
I’ve updated the map
special form to take any number of list
arguments.
As we use GoLisp for more and more general programming, the lack of debugging capabilities has become problematic. So, I decided to bite the bullet and write a debugger for it.
This document assumes that you have some understanding of how GoLisp’s eval loop and lexical scoping works.
One of the new features in SSE3 v3.3.0 is the Toggle Auto-Repeat playback option. With the click of a button, you can tell SteelSeries Engine to take whatever keyboard/mouse events you give it and play them back forever. Click the button again, and it comes to a halt.
To help you make the transition to v3.3.0, we’ve come up with a small features guide to give you an idea on how we’re using SSE3. Hopefully this guide will give you an idea of how powerful your device can become with just a few small customizations!
We recently released Engine 3.3, with new features and new devices.
This is a big one, so let’s look at what it includes.
I recently needed a more flexible and performant way of manipulating structured data, specifically data coming into the system in the form of JSON.
GoLisp has a way to convert back and forth between JSON and Lisp which uses lists for arrays and association lists for objects. This worked fine but association lists can be cumbersome to work with and relatively time consuming. To address this, I ported the frame system from my RubyLisp project, making some improvements while I was at it.
A frame is a collection of slots. A slot is a key-value pair. So
frames are structurally much like data structures such as Dictionaries
and Maps. In fact, the underlying implementation is a Go
map[string]*Data
. What makes frames special is the functionality
that is built on top of that.