Completing Three Major Projects in One Year

I think it’s important to brag about any project that you manage to take from idea to completion. Many people (myself included) have a ton of ideas, few of which become something, and even fewer of which are actually finished and out there. So you should take any opportunity you get to shout out anything you’ve completed.

Built a website? Cool. Remodeled your kitchen? Nice. Wrote a short story? Awesome. Get out there and tell people!

I know the feeling of wanting to start something new every day just to forget about any mistakes you might have made in the previous day. It’s all about start, start, start. It’s never about finish, finish, finish. I guess sometimes we feel like “new” is better than “old” even if that “old” thing has potential.

Without further ado, these are three major projects that I managed to complete in late 2015 and early 2016. They’re not much, but hey, they’re mine!

Twolips Dating

TwolipsDatingSplashTwolips Dating is an online dating community aimed at those who want to find others based on their knowledge and skills. Find yourself attracted to someone really good at math? Awesome. Find people in the community who have answered a ton of math related trivia questions and quizzes. Sign up for free.

Or just check out the blog to follow updates until you’re ready to start.

Safer Stash

SaferStashSplashSafer Stash is an online encrypted virtual storage for your physical stuff. The image above does a good idea of succinctly describing it. Think of it as an online backup for receipts and images of your expensive belongings so that you’re protected in the event of a loss or other need. Sign up for free.

Or just check out the blog to follow updates until you’re ready to start.

Dota Database

DotaDatabaseSplashThe Dota Database is a site dedicated to Dota 2 enthusiasts and “stats nerds” who are interested in the internal data of Dota 2. You can quickly look up hero stats, item stats, cosmetic item stores, live matches, and more directly data mined from the Dota 2 Game Client and Steam. There’s absolutely no cost to using all the features.… Read more

Introducing the Dota Database

I’ve spent some recent weeks building a cool new web site which exposes a lot of Dota 2 game data which may not be easily accessible to most players. You might be thinking, but I already use DotaBuff for all my Dota 2 needs! DotaBuff is great, but it doesn’t cover everything.

For starters, the new Dota Database that I’ve created is useful to see some of the finer details regarding heroes, hero abilities, items, item abilities, cosmetic items for purchase in the store, and more. This includes details like spell and ability behaviors, which shops you can purchase an in game item, hero level progressions, cosmetic item sets, and even pro player autographs. The information for these specifics comes directly from the game files and the Valve provided Dota 2 web APIs.

Live League Game Listing

This page will give you a paged listing of all currently live league games. Some games will display blank data when still in the hero picks/bans phase. Each listing shows the league, the team names, elapsed times, spectator counts, series scores, team scores, player scores, player picks, team worth, and team XP. Click in to the listing to see all the live updated details for the match.

See it in action

LiveLeagueGame

Live League Game Details

When you click in to a live league game, you’ll see a page full of information about that game. Every 20 seconds, the page will refresh and show you the latest updates about the match. All data is provided by Valve through its Dota 2 league web API.

LiveLeagueGameDetailsTopAt the top, you’ll first see the league and its details, team picks/bans, and some details about the match itself such as match id, series scores, spectator counts, and the duration of the game. Click any hero to go to the details page for that hero.

LiveLeagueGameDetailsMiddleLiveLeagueGameDetailsTopIn the middle, you’ll see the “meat” of the game such as individual player details, map positions, tower statuses, team worth, Roshan status, items purchased, and more. This is basically the section that you’ll want to pay attention to as the game progresses.

LiveLeagueGameDetailsBottomAnd finally, near the bottom of the page, you’ll see a table which contains the overall status of every player in the game. This allows you to quickly sort and compare every player against each other with things like XP, kills, deaths, gold, and more. It’s a good way of determining which team is probably in the lead. Just keep in mind that player stats don’t necessarily indicate which team is winning.

Heroes and Details

Interested in the heroes you can choose from in game? Want to know everything about them? Ever wonder what specific behaviors were attached to their abilities? Then this page is perfect for you.

HeroGridBy default, you can view all heroes by a grid of their icon. This provides a highly compressed and easily visualized selection of which hero you want to read more about. However, comparing heroes against each other is impossible in this view. To remedy that, check out the next way of viewing the data.… Read more

Beta Testing Steam In-Home Streaming

Invite via Email

Valve has launched the initial phase of beta testing for their new Steam In-Home Streaming service. I have no clue how many people go into this first phase, but I was lucky enough to get invited. I was at work today and casually checked email from my phone. To my excitement, this popped up in my inbox.

InviteIf you got invited, then you will likely receive a similar email. It comes from the address “noreply@steampowered.com” if you’re curious. It doesn’t ask for any usernames, passwords, or any other Steam information, so don’t fall for any scams that people try to send you.

The email will have links to a Steam Support article with answers to some common questions, how to get setup, and how to get additional help. I highly suggest reading the support article and visiting the main streaming page.

The Gear

All my tests are going to be with mouse, keyboard, and touchpad (on the laptop). I don’t have a proper controller to test controller input.

Router: Linksys WRT54GL (10/100M ethernet / 54Mbps wireless)
Cables: CAT5e

Desktop (Host)Laptop (Client)
Model NumberCustomToshiba P755-S5215M
CPUIntel i5-2500K @ 3.3GHzIntel i3-2310M @ 2.1 GHz
GPUNVIDIA GTX 560 TiIntegrated Intel HD
MotherboardASRock Z68 Extreme3 Gen3Unknown
RAM8GB6GB
OSWindows 8.1 64-bitXubuntu 13.04 64-bit
Resolution1920×10801366×768

Getting Setup

Honestly, reading the support article linked above would probably suffice, but that’s so boring. Don’t you want to follow along with someone who is in the beta? Sure you do! Here’s what I did to get setup.

  1. Get two computers capable of launching the Steam client. In my case, I have a desktop which will host all of the games and a laptop which will connect to the host as a streaming client. The host and client operating system doesn’t seem to matter. My desktop is running Windows 8.1, but my laptop is running Xubuntu 13.04. The connections worked perfectly fine.
  2. Make sure both computers are on the same local network so they can see each other. I’m using a relatively dated router (see The Gear section above), so my latency results are going to be on the low end if I’m going up against people with gigabit networks. Both computers are connected to the router via CAT5e cable.
  3. Login to Steam on each computer, go to Steam –> Settings and opt-in to the Steam Beta Client. Restart Steam, and you should see the following pop-up in the lower right (once both of your computers are connected to Steam). ConnectedThe pop-up actually shows up on both computers indicating who it is connected to. In fact, there is a separate pop-up for disconnection as well.
  4. Confirm the connection by going to Steam –> Settings –> In-Home Streaming. You’ll see the devices that you can connect to along with a bunch of streaming settings (see below). Settings

Limit bandwidth: Auto/5/10/15/20/Unlimited Mbit/s

Limit framerate: Auto/30/60 FPS

Limit resolution: Desktop/1080p/720p

Disable hardware encoding: I’ve heard that the beta only uses software encoding, so I’m not sure if this option does anything.… Read more

On Game Input and Response (Mouse, Keyboard, and Controller)

The Importance of Input

One of the large distinctions between video games and other forms of entertainment is the ability for the user to provide input to directly affect the state of the system. In essence, the user is driving the medium and has direct leverage over the future of their character(s) within the rules of the system. This uniqueness places a large burden on the designers to provide a good system of input for the users. Such a system can be the difference between maintaining loyal users and being completed ignored or negatively criticized.

When users play games, not much is worse than delayed/confusing controls or input with very little visual or aural feedback to indicate action occurrence and consequence. Think about that for a second. Try to think about how we manipulate the world in our actual lives. When you lift a book, open a page, or slide something across a table, action and response is immediate. Unfortunately, manipulating in a game system is never 100% immediate because there are levels of abstraction between you and the electrons. However, a designer can certainly work around this annoyance to provide a smooth experience. There are several considerations to maintain in order to achieve good input and feedback, and it is slightly dependent on the control schema available. (mouse, controller, headset, etc…)

Mouse and Keyboard

On the PC, the mouse and keyboard are kings. There are other ways of controlling your computer through touch interfaces, headsets, speech, and USB controllers, but the majority of the time is spent using a mouse and keyboard. In my personal opinion two of the largest sins regarding mouse input is the application of mouse acceleration and the occurrence of “soupy” mouse movement. The former is a large point of debate and the latter is a consequence of bad design and possibly video settings.

Mouse acceleration is the acceleration of the mouse cursor as you move your mouse at variable velocities. Moving the mouse from one corner of your mouse pad to another at a crawl will move the cursor on the screen a smaller distance than if you jerked the mouse across the mouse pad. This is because the mouse acceleration is trying to help with precision pointing at small velocities and reduce physical movement at large velocities. Honestly, I can see where it  might be helpful for some scenarios, but when it comes to games, I hate the inconsistent mouse movement that is a result of the acceleration kicking in. When I play games like Counter-Strike, reliable mouse movement is huge. “Flickshotting” where the user jerks the mouse from one point to another for a quick AWP kill is more difficult to achieve when mouse acceleration is on due to the variable velocity. No one will move from point A to point B on their mouse pad with the exact same velocity every time. Because of that, the actual translation of the mouse on the screen will fluctuate. Maybe this is not as important for slower games, but I still want the translation of my physical mouse to match up with the translation of the cursor regardless of the speed at which I am operating.… Read more