Archive for the ‘Programming’ Category

Riot Games is an amazing company!

Friday, January 7th, 2011

Hello everyone! So in a previous post I said I would talk more about getting hired by Riot Games.

It all started way back with the League of Legends beta release. I got in and played the hell out of the game. I was obsessed, just like I used to be with DotA. So when I went to volunteer at GDC last year, I decided to run a League of Legends tournament for all of the CAs. I contacted Jeff Jew at Riot Games to see if any of the Riot guys would be willing to visit and if they had any schwag I could use as prizes.

Well, not only did Jeff Jew show up, but ELEVEN OTHER RIOT GUYS CAME! Holy crap! It was like a dream come true for so many people. We had laptops set up everywhere and there were at least 40 people playing LoL at any given time. We had a huge 5v5 Riot VS CAs match. All in all the event was a blast, and as thanks for preparing it they invited me to their recruitment party.

While there, I met many Riot employees and they discovered that I did Flash programming. I had no idea that Flash coders could even get a job in anything but the casual/kids section of the game industry, but apparently almost all of the triple-AAA studios use a 3rd party solution called ScaleformGFX for their user interface solution. The way Scaleform works is that you can code the entire UI in Flash using the IDE as well as Actionscript code, and then the Scaleform player runs during your game simulating the way a Flash player behaves in a browser. The unfortunate part is that Scaleform currently only supports Actionscript 2.0, which is a horrible language for most developers. But, to make a long story a little shorter, that is the reason I now work for Riot Games. They needed a Flash developer to take over the UI coding, and I was at the right place at the right time and proved my passion for the game by spending my spare time running a huge tournament to show my support.

This just goes to show that networking is the absolute 100% most vital aspect to getting a job in the game industry. I had met Jeff Jew and played in-game with him once, and he remembered me because while I was in school another Riot employee, Steve Snow, used to come speak at our school and I mentioned that fact. As a result, when I decided to run the tournament, I was able to use my previous networking and send Jeff an email and that resulted in the entire chain of events that eventually led to my employment.

And I have to say, this is the happiest I’ve ever been in my life. Riot Games is the most incredible company I’ve ever worked for. If you add up how happy and fulfilled I was at every job I’ve ever had in the past, it would be a fraction of how happy and fulfilled I am at Riot after just 6 months on the job. Despite tackling immensely difficult problems the likes of which I’ve never seen before, I don’t feel like I’ve “worked” a single day here. I look forward to going in and seeing my awesome and amazingly talented co-workers, and I face satisfying challenges every day! I am the kind of person whereby, in a job, if I don’t get copious amounts of extremely difficult to solve problems and challenges on a daily basis, I get bored very easily. Keep the hard work piling in on me and I’m happy as a kid in a playground. The best part is that the design department is extremely open about including non-design department employees as participants in their discussions. I love game design, but I was hired as a programmer, so that’s my first responsibility. But everyone is encouraged to submit champion ideas (of which I’ve submitted 4 already), provide feedback on any aspect of the game including balance, and play in the play tests that we run every single day to do a massive crowd-sourced QA and design/balance sweep of the game. Since we’re running the game as a service that updates every 2 weeks, the latter is the most important part of the puzzle.

Anyway, this post is turning into a novel. To conclude, I will say to anyone who is interested in working at Riot Games, we have quite possibly the best company the game industry has ever seen. We only hire strong, talented, alpha personality people who check their egos at the door, and I’ve never worked with a more cohesive and impressive group of individuals. The company is very demanding of time and effort, but they are also very generous and recognize those efforts on a regular basis. The leadership is also extremely transparent – you know exactly where you stand at all times, and I have yet to experience any sort of politics. Everyone in the company is treated as an equal, from the QA interns to the programmers to the CEO & President.

I love Riot Games! :)

Some More C++ Resources

Monday, December 27th, 2010

Hello all!

It’s been a while since I posted last. I’ve had a fantastic move to California to join Riot Games (will discuss more in future post) so I’ve been kind of busy. :)

Over the Christmas holiday, I decided it was time I finally teach myself C++ for real, in particular how to use DirectX. I had a class on it in college, but it was very introductory so I don’t think that will suit my purpose (plus I forgot a lot of it).

Here are two websites I just recently discovered. I’ve been going through the tutorials for the past couple days and they are quite good so far. I’ll do a more thorough analysis later.

Learn C++ (http://www.learncpp.com/)
DirectX Tutorial (http://www.directxtutorial.com/) – Note that the DirectX 10 & 11 tutorials won’t apply to Windows XP, and DirectX 9 is just fine for just about everything you’d want to do probably, so stick with the DirectX 9 one.

IceCream – Open-Source XNA 2D Engine

Wednesday, April 1st, 2009

OFFICIAL SITE: http://icecream.epsicode.net/

Well, now this really excites me. Not only is IceCream a nifty little 2D engine for XNA games, but it comes with a convenient authoring tool called Milkshake! To quote from the site, “This editor allows you to easilly design all the elements of your game, from the texture selection to game object’s components edition.” That’s pretty darn cool if you ask me! Looking at the videos they posted, it reminds me of the in-game editors I’m used to from games such as Warcraft 3 and Unreal Tournament 2004.

This puppy hasn’t launched yet, but I am eagerly awaiting it’s release. Anything that makes XNA development easier, especially by turning it into more of a drag-and-drop or selection-box kind of environment, earns major kudos in my book. Go check it out. I think this one will be well worth the time.

Enjoy!

- George

XNA Tutorial – Star Defense

Thursday, January 15th, 2009

I’ve just stumbled on a mother load of information over at http://xnaresources.com/. They have a tutorial that serves perfectly as the next logical step from the previous XNA tutorial (Simple 2D Shooter) I posted about earlier. It’s another complete shooter but this time with a title screen, animated sprites, power ups, sounds, and best of all… explosions! Woohoo!!

Here is a direct link to the tutorials: http://www.xnaresources.com/pages.asp?pageid=8

Enjoy! I will be finishing it, as well, over the weekend and posting my results.

New to XNA? Start here!

Friday, January 9th, 2009

So unless you’re living in a cave devoid of any game development news, you’ve heard about XNA even if only as a buzz word. When I first heard about it, the only thing I knew was that I could use it to make games for my Xbox 360. I didn’t know what programming language it used, what software I’d need to install, or even where to start. All I had was a good knowledge of general programming concepts and experience with Actionscript 3.0 programming.

After doing some research online, I discovered the XNA Creators Club Online. That handy site was EXACTLY what I needed to get jump started. Their Newbie FAQ was extremely useful, as it answered every question I had about XNA but was too embarrassed to ask. I mean, come on, how can I be taken seriously as a developer when I have a stupid question like, “What exactly is XNA?” Shouldn’t I have already known this? Apparently not, since the FAQ answers that simple question and more, and the Creators Club site is very developer-oriented. In fact, the community is very helpful and inclusive to people of all skill levels (similar to the Flash community), so you don’t ever have to be worried that someone will look down on you for your lack of experience.

While I learned the answer to most of my questions, like the fact that XNA programs are usually written in C#, it did NOT tell me what programs or applications I would need to write C# code. I had worked with Visual Studio when I was in school and I remember C# being one of the options, but back then I had not even gotten into Actionscript so the entire program was an extremely daunting task. Plus it used to cost a pretty penny, and I am averse to spending ANY money when learning and testing out a new technology. Fortunately for me, Microsoft has released new lighter versions of Visual Studio for free, including a version that lets you write C# source code.

For those of you that may need help with that step, Microsoft has already done a fantastic job of making an introductory video for people who start with literally ZERO experience. You can find that video on this page (just click the link “Video: Introduction to Visual C# 2008 Express Edition” at the bottom to have the video open in Windows Media Player). The whole download and installation process may take a while, up to an hour or two with a poor internet connection. Once that is complete, do a Microsoft Update. SURPRISE! Bet you didn’t see that one coming.

When the update is complete and you (have been forced to) restart your computer, you are (finally) ready to install XNA Game Studio 3.0, which is a toolset that integrates into Visual C# 2008 Express. It serves as a sort of “template” with pre-built code and code libraries that come right out of the box to make your game-development much easier.

Once it is installed, I recommend restarting your computer once more. The program should now be loaded in your start menu.

  • STEP #4: Run Visual C# 2008 Express (START -> PROGRAMS -> MICROSOFT XNA GAME STUDIO 3.0 -> Microsoft Visual C# 2008 Express Edition)

If you have done everything correctly, you should see something like this on your screen at this point:

Visual C# 2008 Express - Startup Screen

Visual C# 2008 Express - Startup Screen


So now that we have our work environment set up and ready to go, it’s time to dive into the meat of the topic — coding your first XNA game. The Creators Club website has a marvelous little 2D tutorial that spans a little over 20 bite-size videos divided into 9 chapters. Admittedly it’s just a very basic 2D shooter game, but hey it’s your first time with XNA, right? For those of you who, like me, are already familiar with Actionscript (or another similar coding language), this will be a piece of cake. If you are learning how to program for the first time, it’s going to be very difficult, but give it a shot anyway.

That about sums it up! Once you are finished, you will have a basic functioning 2D shooter that you created in XNA! If you feel brave, you can even tackle the “Extra Credit – Community Tutorials” section. I checked out all of them and they are all great. A few final comments:

  • The tutorials were finished using XNA Game Studio 2.0, but 3.0 should work just fine. Your startup and project selection screens may be different but everything should still work.
  • I believe there are a couple of places where the code is just a tiny bit different than what the video states, but theses should be obvious if you have any experience coding. I’ll try to find those places and update this post once I have them.

That’s everything! Have fun making your first XNA game! :)

Flash Tracer not working? Do a Flash Player Version Test!

Wednesday, January 7th, 2009

For those of you who don’t know what Flash Tracer is, it’s a Firefox plug-in created by Alessandro Crugnola that lets you see the output of any trace() statements hidden in the Flash code. Very useful! You can get the plug-in by visiting the following link:

https://addons.mozilla.org/en-US/firefox/addon/3469

I recently ran into some trouble with Flash Tracer, namely that it wasn’t working at all. I consulted the online help and went through the checklist:

  • Flash Debug Player? – Check! I’ve had that for a while.
  • Output file pointing to the right text file on my system? – Check! I reset it manually just in case. (And FYI, the path on a windows machine should be “C:\Documents and Settings\{User}\Application Data\Macromedia\Flash Player\Logs\flashlog.txt” – obviously replace {User} with your username)
  • Make sure Flash Tracer is not paused? – Check!

Why wasn’t it working? It drove me absolutely batty, until my friend Scottae pointed me to this web page to verify I had the right version of Flash Debug Player installed:

http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_15507

Looks like I was a little too hasty with my first check mark. The website revealed to me that I did NOT have Flash Debug Player installed for Firefox. Apparently, way back when I first installed it, I accidentally installed the IE ActiveX control, not the Netscape enabled one. Most Flash developers of any accomplishment will probably snicker at my mistake… However, for you newbies out there who aren’t able to get Flash Tracer to work, do yourself a favor and use that handy little link to make sure you actually do have Flash Debug Player for Firefox installed. Lesson learned!

Oh, and Alessandro has explicit instructions to get your plug-in to work here: http://www.sephiroth.it/firefox/flashtracer/

- George

Casa Lib Open Source Flash

Monday, January 5th, 2009

I was recently introduced to CASA Lib by my friend and fellow Flash developer, Scottae, and I have to say I’m quite amazed. This extensive library is jam-packed full of things that I’ll be using over and over to make my life a lot easier. It’s stuff like this that you’d think would be native to Flash anyway, but isn’t. In my years programming games, I’ve started to move towards coding like this anyway, but the guys who developed this library do it FAR more efficiently and elegantly than I ever would have. Go ahead and dig into the source code – it’s all there and it’s beautifully executed. The documentation is thorough and detailed as well. The only complaint I have is that I wish there were even more concrete examples buried in the documentation (like Adobe’s documentation). Here’s a few of the features I am particularly fond of:

  • Any object that can dispatch events can now be created extending RemovableEventDispatcher which tracks all those pesky event listeners automatically and gives you easy, convenient methods for cleaning them up in one line
  • The commonly used display objects are recreated (CasaSprite, CasaMovieclip, etc) with a destroy() method, giving you a neat and tidy way of doing everything to make them immediately available for garbage collection
  • An inactivity monitor to easily integrate code that needs to run when the user sits there idle (perfect for games)
  • A class that can register for and respond to key combinations being pressed at the same time or in a specific order (again, perfect for games)
  • A plethora of new utilities that address situations where we have all said at one point “man, I wish there were something built in to Flash that can [insert common process here]” – too many to list here

I’ve only been through about half of the classes so far, so I’m sure there are a ton of other really nifty things that I haven’t even discovered yet. Mega kudos to Aaron Clinger and Mike Creighton for spearheading and managing this library. I can’t say enough good things about it! This has been a godsend for my game programming and I’m looking forward to incorporating these new classes into my projects.

OFFICIAL SITE: http://casalib.org/

Enjoy!

- George