This site has been a lot of fun to build. Here are the highlights since it first went live.
Added some database connection pooling for better performance. Honestly didn't realize this wasn't the case since I switched to Amazon RDS.
Got reports working for the new tutorial mode (not that analysis is useful, but the summoner and match reports work). Also fixed the Played on date info at the top of the match report.
Now that I've got good error reporting in place and more free time, I've been cleaning up various small problems in the error reports.
Stuff you might have noticed... fixed links to other summoners on match report and in-game tab.
Less noticeable changes... handled when Odyssey game is missing time data, handled missing game stats in 2017, handled when summoner name renamed, handled when summoner returns games they did not play in, handle missing time data for a player in a match, improve automatic builds and error reports, and upgraded Jetty and database drive.
I finally got approval from Riot to start working on this, which I should have prioritized because in January, Riot significantly changed their API and broke this site.
I've recovered the basic functionality, and now that I'm authorized to work on this, I can start making bigger changes to how the code works. The site style looks out of date, I have to rework the way to edit lane assignments, I need to switch to Docker for better uptime and easier deploying changes, and probably much more. We'll see how much I can get done. As always please send me any suggestions. Thanks!
What actually changed: Riot changed to developer-specific summoner IDs. This means all of the summoner page URLs have changed. Upgraded to Riot's new developer endpoints. The previous two changes were what I needed to fix to get the site back up and was most of the changes. Next, several champion-data fields were changed which affected where images were and how I determine champion gender. I also added more testing and changed to using Docker. And added Sentry for crash reporting.
So, I got a job at Riot Games, for real. Will talk about this more later, but sorry for no updates to this.
Fixes the new game modes (Odyssey and Nexus Blitz), shows a more useful error message when I don't recognize the game mode, updated for Riot's new version 4 API endpoints, and fixed some stupid styling on this history page.
I wrote an Alexa app! You can see it on Amazon's site, so give it a whirl. It's pretty basic right now and the most frustrating part is that you have to give your numeric summoner id to tell Alexa who you are, and it only gives the one paragraph summary of your match.
The one thing I know I want to improve is let you only have to give your summoner id once, and from then on, Alexa will remember it. That will make it much more usable. Then after that, I would love any suggestions on other interactions you'd like, ideally post-game eval. There are other Alexa apps to help with pick/bans and other areas of the game, so I'm not likely to start those soon.
I might make another Alexa app to tell me if any of my friends are playing, or when they played today if nobody is on.
TLDR: We're back!
Several things happened this year that put this site on the backburner, and I'm sorry to everyone who was using it. Here's what happened:
First off, I decided to sell my business (my day job), and that took a ton of time and emotional energy. I've finally handed off everything to the new owners, and I could spend the last few weeks working on Like a Boss again.
Second, Riot changes their API in July (right as I was negotiating the sale) so the site broke. Unfortunately I had no time to do anything. While I disagree in broad strokes about how they did the upgrade, the changes are for the best and allowed me to simplify logic I had to write on top of the old API.
Finally, I had originaly built this on site Google App Engine, and after over a year of fighting it, I decided that it's too expensive and that the limitations were much greater than the benefits. Fundamentally, the site was slow, and I was spending most of my time working around performance issues instead of adding features. Migrating to Google to Amazon Web Services meant that not only did I need to rewrite the logic for Riot's API changes, I also had to rewrite for a new architecture. It just takes a lot of time, but in the long run, it'll be worth it. I've added a full account of what I changed technically.
So now I've re-launched the site and while it's not bug free, it's at least functional for most cases. And hopefully can continue to make more improvements. Thanks again for your patience this year and let me know what else I should add.
Season 7 brought around a lot of problems as Riot's API is not giving timeline information in a lot of cases, or really the new thing that was causing problems is that they would give partial timeline information. That is why people were seeing so many "Well that sucks" error messages. This has been fixed, but there are still lots of game mode and other clean-ups that have to happen. I'm going to work on this over the holidays later this month, so please continue to send me feedback. I read everything you send and will work thru many of the reports.
I broke the home page updates so the featured games from Saturday were still showing (it's now Tuesday). This has been fixed now.
You won't notice any change today, but I've started storing match information in a different location on a trial basis. I think it's going to be a bit faster, but more importantly to me, it's going to cost 1/100th of what I'm paying now... which with over 10,000,000 matches downloaded has started to cost actual money. If everything goes smoothly, in a week or so I plan to start deleting the expensively stored data and I'll be in a position to collect more data and do more aggregate reports.
We've given better titles to match histories and cleaned a lot of code up mostly related to game types.
Overhauled the summoner page! The new layout is much more compact and easier to see what's going on. The recent games are color coded by wins and losses, and I also highlight the lane results much better. I think the tab layout makes it easier to switch between the current game and recent games, and people might actually read the bookmark feature now. And I added a feedback link to get more thoughts on this page. Finally, the current game information is organized more sensibly looks better, places the teams side by side unless you're looking at this on a small device, and adds a way to update the current game information to see if the person is still playing (or has started playing one).
Purely some internal changes... rewrote how the CS lane graph is generated so it should be faster. If this works, I'll start redoing more of the graphs this way. And the current game info, which was the first thing I did, looks better and works better across devices. The page should also start to load faster but there's still much to do to improve that. After this visual improvement, I'm planning to focus on more backend improvements and more complicated logic to improve the usefulness on these pages.
I've gone thru and started to add improvements to Google SEO stuff so people can find what's going on. There was also an issue where Google was checking every page twice because the region was sometimes in upper case and sometimes lower case.
Fixed a gender issue in the match recap. I now look at the champion's gender to write the text when referring to "his" or "her" team. Thanks to whoever wrote in with the feedback!
Cleanup continues... Laning phase is cleaner now with the stars and no text by default so you can quickly see the overview, then you can click in to read the summary or see the bloodshed and CS graph. With that space saved, I've moved the farming table up into this laning section. Next, I added a new Damage section to show damage to champions, overall, and damage taken. Then, I cleaned up the feedback and lane editing so it's easier clearer and you can close it if you don't want to see it. After that, the various graphs were changed to use the background color in the section they're in rather than try to force some other color... it looks cleaner that way. Finally, I fixed a bug where apparently the summoner spells of bots will disappear and not be sent over correctly, so I now handle that nicely.
Wow, I got busy. Ok, starting to fix things up. This moved the edit lanes link next to the feedback link since wrong lane assignments is the number one comment I get. Also I've fixed the consumable changes in season 6 so we don't have broken images so much anymore.
Editing lane assignments!!! Our lane analysis is based on our guesses of where each summoner was for the first 10 minutes of the game, but sometimes we get things wrong. This is something that's easy for a player to spot and now they can correct. Below the key statistics table, there's a link to edit lane assignments which takes you to a simple page to pick which lane everyone was in. We'll continue to improve this but wanted to get this in everyone's hand since this was the top request by people giving us feedback!
Thanks Riot, release 5.13 without updating the list of champions. Had to fix bugs so it would just put a question mark and not break for matchs and summoners who are using the new champion.
Google keeps crawling all of the site and downloading tons of summoners and matches, but we never did anything to make Google happy. I hate SEO but added just a bit of it so Google wouldn't ask for the same match report 10 times and think that's 10 different pages on this site. Also fixed a bug or two and upgraded some underlying software.
Put in place code to track when there are errors on the site and send an email report. Found a bug with match analysis when a non-player kills a dragon.
I fixed a few champion names in match analysis summary (like Wukong was called MonkeyKing), I fixed bugs with hexakill game mode, and I added a place on match history for you to send feedback on the analysis.
Side bar! As I mentioned in the May update, I spent a long time developing a way to analyze millions of matches to spot trends. This gave me the ability to do stats similar to the great stuff at http://champion.gg/ except I could apply the analysis logic I've built out. The problem became what stats are the most informative? I have a great framework and explored many ideas, some gave some interesting information. But I remain stumped on what to show that gives actual helpful analysis that improves your and my game play without just overloading you with stats. I'm also working on letting you with in with a Gmail account to unlock some additional features that seem much more straight forward, but those are still under development. Also been looking at some video on demand integration, but that needs the accounts working first.
I spent most of April working on some ways to crunch hundreds of thousands of matches and plan to roll those ideas out in May. In the meantime, this brings some typo mistakes and added a bookmarklet feature at the bottom of the summoner report.
Fixed bug that was preventing the home page from updating with new summoners and games.
Fixed a shifting summoner page where actually had broken HTML across most pages. Thanks Yosel!
Fixed recap on summoner page that said "at 10 minutes" when it should have said "at 15 minutes." Thanks Andy! Also clarified the graph of how many CS per minute you get in the lane analysis section.
Coming back from vacation, we've got better text when you get crushed in lane, faster pages from caching some static data, and rewrote the URLs to summoner pages to fit the way we name matches.
Apparently I broke a lot with last week's changes, so went thru and fixed up bugs in several odd conditions. Also Riot's NA API was just horrible, so couldn't get much development done. I have updated the styles for the summoner report to look nicer and better handle when we can't find a summoner. Also optimized some browser page loading stuff.
Faster home page, slightly faster summoner/match reports, and fixed a bug with some analysis because the match participants were not listed in a standard order leading to backwards analysis.
Mega update! with an overhauled home page, summoner and match report! The home page now shows three sample summoners and how they did in their last game. The summoner report includes a lane phase recap for each game on summoner's rift. And the match report has a new visual layout that will make it easier to move across all of the different reports. I also added support for vilemaw, and hid battles section in match reports that don't have that information. The site is slow because of so many new features and will improve this over the coming updates, but please let me know what else you want to know.
Exciting news on the match report! We start with a nice recap of the game for the player and the team they're on. We've also added a floating navbar that makes it much easier for you to see all of the sections of the match report. Also I went thru every section of the match report to make sure it works great on iPhones again. FINALLY, Riot is killing me with their crappy reliabiliy, so made more fixes based on that and re-enabled trying their servers a few times before crashing out.
Handle a few new bugs when Riot's ranking API servers are down. Added the team color in the summoner navbar on the match history and wards per minute in the overview.
Battles are now available on match history! See what happened at every stage of the game and see if you won or lost most team fights and what the outcomes were for each.
New home page showing a featured game and links to it. Added LP and ranked wins to summoner page. Better graph labels across the match page. Other small changes include hiding vision in matches that do not have vision wards, excluded red lizard and blue golem from lane analysis as Riot had added back in as "epic" monsters, hid teemo mushrooms from vision graph, and removed blank space from lanes that have nobody. Fixed kill participation with 0 kills.
Big visual update to the match page and a bottom navbar that will help you move between the various sections and other improvements. Hope you find it easier to show off how you're doing!
Handle when a match is missing timeframe data, added meta tags for sharing, and tool on match history to make it easy to share on social media namely Facebook.
Vision graph to see each team's advantage of how each player was contributing to that. Cleaned up graphs so there's less wasted whitespace as the y-axis had way too much padding. Added build description for consumables.
Added favorites to let you note who are the summoners you want to see most often. Added summoner level, made no-current-game much less obnoxious. Added message explaining that Riot's servers are not returning data promptly, so know you played a game but don't know what it is. Fixed kill participation calculation.
Added ads around, setup email, google analytics, lots of bug fixing and some design improvements.
Builds block to match history.
Added menu drop down of what summoners you've recently looked at. Also basically been putting in a lot of bug fixes the past 2 weeks.
New layer to describe match across ranked, normal and bot games. redesigned lane analysis to make it easier to see what happened. KDA and CS at 15 to match summary, KDA and score at end. Champion icons, making match history prettier.
Riot replaces 3rd party spectator mode, so had to re-implement all of that. Added game start and duration in game.
Riot approved website, so no longer worrying about hitting rate limits!!!
Gold advantage by team graph, better warning messages, about page.
Gold advantage per player graph, improvements to farming table.
Farming table to show CS at 5 and 10, new site navigation, welcome page.
Design improvements from graphic designer, faster loading, better handling of problems or different game types.
Website is launched with current game information about a summoner.
Like a Boss isn't endorsed by Riot Games and doesn't reflect the views or opinions of Riot Games or anyone officially involved in producing or managing League of Legends. League of Legends and Riot Games are trademarks or registered trademarks of Riot Games, Inc. League of Legends © Riot Games, Inc.