Skip to content

Instantly share code, notes, and snippets.

making a game?

Kyle J. Kemp seiyria

making a game?
Block or report user

Report or block seiyria

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
View soa-loans.js
const Random = require('random-js').Random;
const MAX_PLAYERS = 100000;
const calculateChoices = () => {
const random = new Random();
const ALL_PLAYERS = Array(MAX_PLAYERS).fill(0).map((x, i) => i);
View get-github-issues.js
const octokit = require('@octokit/rest')();
const snake = require('lodash.snakecase');
const fs = require('fs');{
q: 'repo:landoftherair/landoftherair is:open'
.then(res => { => {
View gpm-unfuck.js
// ==UserScript==
// @name get rid of that instant mix and shuffle shit
// @namespace
// @version 0.1
// @description try to take over the world!
// @author seiyria
// @match*
// @grant none
// ==/UserScript==
View filename
seiyria /
Last active Jan 8, 2018
Code Quality and You

update: this post has been moved to my blog

Welcome! Today I'd like to talk about another subject which can't be emphasized enough: Code Quality. This entails a lot of tools and patterns that ultimately come together to make your game more solid and programmer friendly. Even if you're working alone on a project, these tools can save you some precious debugging time by pointing out simple errors, if not more complex ones. I'll be using my current project, c as an example where possible.

A few notes before we get started:

  • Some of the following tools are specific to the JavaScript ecosystem.
  • Some of the following tools are only free for open source projects, so bear in mind that you might be missing out on the awesome!

Style Checking

Some of the easiest tools you can set up for your project are JSHint and JSCS. These tools provide basic st

seiyria /
Last active Feb 20, 2020
Common Pitfalls in JS-based Games

update: this post has been moved to my blog

Welcome! You might be reading this out of curiosity, or because you want to improve your programming capabilities to stop people from exploiting your JS games. Given that the first thing I do when I open a new incremental is open the terminal and start messing around with your games, I figured it's about time to write something about what I see and how I break your games. Consequently, I'll describe ways you can protect your games from the basic code manipulations I perform. Some might say "you're just ruining the game for yourself!" while I'm going to turn around and say "I don't care" -- that's not the point of this!

NB: This will only apply to vanilla JS applications, which I see more commonly. Frameworks like AngularJS and such are out of scope for this post. Advanced techniques such as using a debugger, while slightly more on topic, will also be disregarded for now.



Keybase proof

I hereby claim:

  • I am seiyria on github.
  • I am seiyria ( on keybase.
  • I have a public key whose fingerprint is 459D 591A 221A 68D0 D7DA A237 99FF 38D0 52A4 9311

To claim this, I am signing this object:

seiyria / Converter.js
Last active Nov 8, 2018
Docx -> MediaWiki w/ Images
View Converter.js
var fs = require('fs-extra');
var wiki = require('nodemw');
var q = require('q');
var glob = require('glob');
var execSync = require('child_process').execSync;
var logger = require('winston');
var argv = require('minimist')(process.argv.slice(2));
var client = new wiki({
server: '',
seiyria / knockout.bootstrap.tooltip.remote.js
Created Jan 3, 2014
A tooltip binding for knockout/bootstrap to get data from a remote source.
View knockout.bootstrap.tooltip.remote.js
Option Parameters:
url - the URL that will be sending back the tooltip data (required)
loadingText - the placeholder text during the loading process
getDelay - the delay between when the loading text is shown and when the GET request is sent
emptyText - the text that is shown if there was an empty or invalid (404) response from the server
cache - if this is true, the response will be cached and will not be re-requested
options - these are passed to the bootstrap base tooltip call
seiyria / knockout.bootstrap.glyphicon.tree.css
Last active Apr 2, 2018
A custom, collapsible navigation tree using knockout.js (and knockout.mapping.js), Bootstrap 3, and glyphicons. Example picture:, fiddle here:
View knockout.bootstrap.glyphicon.tree.css
#nav-bar ul {
list-style-type: none;
#nav-bar {
padding-left: 0;
#nav-bar > ul {
padding-left: 20px;
You can’t perform that action at this time.