Wednesday, December 1, 2010

Google Translate is amazing.

Ok, so this isn't my usual form of posting at all, but I found this to just be too great.

Click the following link which directs you to Google Translate with a phrase already written. Just click Listen, and you will have your socks blown off.

Google Translate Awesomeness

Thursday, November 25, 2010

VOTE FOR WARM GUN NOOOOOOOOWWWWWWWWWWWW

So for the past 3-4 months I've been working as Lead Programmer for Emotional Robots, Inc on UDK-based game Warm Gun.

Its a post apocalyptic post World War 3 Old Wild West + a bit of steam punk multi-player shooter.

We need you to vote for us for the Indie of the Year 2010 award at IndieDB.com! At the time of this writing we are rank 27 out of 2,661. Just a few more ranks and we can be listed on the front page as one of the popular games!


It only takes one click to vote, however if you're extra nice you'll register/login an account as registered account votes weigh more than guest votes. Also, there can only be one guest vote every three minutes so if it is saying you can't vote, just watch our trailer as someone just voted right before you did! Each person can only vote once though, so tell you're friends and family! Please!

VOTE HERE VOTE HERE VOTE HERE VOTE HERE

VOTE HERE VOTE HERE VOTE HERE VOTE HERE

VOTE HERE VOTE HERE VOTE HERE VOTE HERE

VOTE HERE VOTE HERE VOTE HERE VOTE HERE

VOTE HERE VOTE HERE VOTE HERE VOTE HERE

HERES A TRAILER NO WAY:


Warm Gun teaser trailer - Indie DB

Allar's Dev Diary #16: Day 7, Tower Defense Side Project

Day 7 (11/24/2010)


12. Getting Towers to Track Their Targets



Today I decided to switch gears back into actual tower development, as that is the real nature of the game isn't it? In any case, we need a way for our enemies to be registered as enemies for our towers. We don't want our towers to be attacking every actor that is within its range, it should only track and attack enemy targets. To do this, I've decided to make another Interface that way I can make any class an enemy instead of having all my enemies derive from a single class. Right now there is no actual use of the interface than to register a class as an enemy, but I've decided to throw in a function that could be used to allow for classes implementing this interface to decide that a particular instance of it is not an enemy. Today I haven't created that checks this or requires this, but I think it might come handy in the future.



Tuesday, November 23, 2010

Allar's Dev Diary #16: Day 6, Tower Defense Side Project

Sorry I'm 7 hours late with this posting, had to do some stuff.

Day 6 (11/23/2010)


11. Weapon Archetype System


When designing the system for towers to be placed, I thought it would be cool to only have a few base tower classes and then allow for a lot of per tower customization and attributes through the use of Archetypes so I can tweak settings within the editor instead of compiling every time I wanted to change a setting and so that if anyone picks up my project they can add their own towers by just creating archetypes instead of figuring out how to derive and code their own towers. I figure I want to make modding design elements as easy as possible so that if one design doesn't work I can quickly switch to another. The problem with this was, I have had no experience in creating a dynamic system that uses object archetypes rather than actual hard coded classes. Being that towers might be a complex feat to make into an archetypal system as my first project with archetypes, I decided that I should convert the current weapon system to use archetypes so I have something to base on. This took a bit of time to figure out all the kinks, but what I ended up with was a solid base for a really cool way to create new games with ease and test weapon systems without compiling. This means that once I fully develop a custom weapon class, all in-game weapons will be based off of the same weapon class but their attributes will be set with object archetypes. Of course, the archetypal system should also allow for archetypes of classes that derive from my base weapon class, and that is supported simply by the fact that UnrealScript is already heavily object oriented.

Here is a really long and boring video of a brief overview of my most recent Dev Diary posts and how to use the Weapon Archetype System. One day I'll get a better voice, I swear. <_<



Monday, November 22, 2010

Allar's Dev Diary #15: Day 5, Tower Defense Side Project

Day 5


10. Basic HUD Design


So... today I was at school all day, only was home for 7 hours. I didn't do much except layout some basic design for my HUD... this is what I came up with.

Sunday, November 21, 2010

Allar's Dev Diary #15: Day 4, Tower Defense Side Project

Yesterday I spent most of my day eating pizza and working on Warm Gun over at Emotional Robots, Inc., but I managed to put a little time in this morning to this side project.

Day 4 (11/21/2010)


9. Setting Up Basic Interaction Logic From Mouse To Towers


While our towers are just shell Pawns that aren't doing much, before I give them more functionality I wanted to tackle how the player is going to interact with the unbuilt towers so that they can build their own. The first step is getting some sort of simple detection going on that would let the towers know if they were currently the target for the players mouse and then to figure out if the player was within an 'interaction radius' with the tower. Doing so, the player will only be able to interact with tower building zones when their Pawn is close enough to the tower, causing the player to have to run to wherever they want to place their towers for a bit of a fun challenge. If this proves to not be fun, I can just either increase the interact range greatly or remove it all together. Also, I wanted this detection logic to be able to be applied to any actor I choose instead of having every actor derive from an interaction actor. To do this, we have to use an interface. Interfaces are kind of like sub classes, but they list a series of functions and delegates (no local variables) that each class using it must implement. To implement an interface, you just use the keyword 'implements' in your class declaration. More information about interfaces can be found on the UDN page.

The interface is really simple for now, it has a function that returns what type of interaction it is, functions to show/stop showing the player that the object is interactable, and then finally an actual interact function.

Saturday, November 20, 2010

Allar’s Dev Diary #14: Day 3, Tower Defense Side Project

Day 3 (11/20/2010)


7. Aiming With The Mouse


Now that I got the camera set up yesterday and played a lot of Vindictus, its time to get back to work. The next step is to get the player to aim towards where their mouse instead of in the direction the player camera is facing. This way movement and aim will be separated and allow for interaction with the world with the freedom of rotation but locking movement to the camera axis. Basically, the player will be controlled like most top-down shooters. Now for this project I am currently using the September build of UDK even though the October build is out as this project is also meant to help some classmates with their project which is currently September based. The reason I bring this up is that the October build of UDK strips out all UIScene functionality completely and everything related to it and in the past the class UIRoot was my primary way of accessing mouse coordinates. This means that for my project to not need a major reworking in the future I would have to find a new way to grab mouse coordinates. Now I looked all over the UDK development code and I could not find a straightforward way to do so. If there is a easier way than the process that I went to that I will go over, please let me know. The way I did it relies on a SWF to store mouse coordinates which then UnrealScript grabs. Its a little odd but it works flawlessly once set up correctly. I figured that if I used ScaleForm to grab mouse coordinates, Epic won't be scrapping ScaleForm any time soon.

The first thing we are going to need to do is to replace the UT HUD with our own ScaleForm based HUD. As fancy as the UT HUD is, I'd rather have my own. Also, I need to create mouse coordinate functionality without relying on the old hud's Canvas to use DeProject, which I'll get into later. For now, I don't need anything fancy in my HUD except a mouse cursor which will indicate where the player is aiming and will also serve as a cursor for UI interaction with HUD menus and things. Time to start up Flash and build me a HUD. I am using a trial version of Flash CS5 at the moment.

With Flash CS5, I have already set up my ScaleForm extension and my ActionScript settings. If you have not dealt with ScaleForm and Flash before, I strongly encourage checking out my ScaleForm series here. With my new flash document open, I went ahead and drew myself a cursor with the flash tools, and this is what I came up with:


Friday, November 19, 2010

Allar’s Dev Diary #13: Day 2, Tower Defense Side Project

If you don't know about my Tower Defense Side Project, please read Day 1 here.

Day 2 (11/20/2010)


5. Creating The Camera


I've done a few third person cameras before so I was able to implement this system within a half hour. I did research some examples of isometric cameras beforehand however, and I ended up starting with this tutorial here (at X9 Productions) by Christian Roy. His provided code was simple and elegant so it would serve as a perfect slate to base my camera logic on. After implementing his tutorial code however, I found that my 'isometric' camera was only being properly shown if I typed behindview in console, but this is because I implemented it as a child of UTGame and not GameInfo. Normally I don't derive from UTGame but in the case of this project I did not want to have to deal with creating a new code base, but this also causes small issues like these. My solution was to simply force a SetBehindView call on the Pawn during its PostBeginPlay function and that remedied things for the most part. I also had to edit the CameraOffset and the CameraScaleMax variables to get the angle I wanted the camera to be at. Roy's tutorial implementation does not support camera zooming (however the source code he provides for download does, but I chose to implement it differently). I wanted it so the camera would stay locked and you can't zoom or rotate it unless you held down the middle mouse button and then moved the mouse or scrolled. In order to accomplish this, the first thing I had to do was to edit DefaultInput.ini and add the following bindings:

[csharp]//DefaultInput.ini
.Bindings=(Name="MiddleMouseButton",Command="AllowCameraMovement true | onrelease AllowCameraMovement false")
.Bindings=(Name="MouseScrollUp",Command="HandleMouseScroll true")
.Bindings=(Name="MouseScrollDown",Command="HandleMouseScroll false")[/csharp]

This way two functions would be called, one when the MiddleMouseButton was pressed or released, and one when the scroll wheel was scrolled. AllowCameraMovement(bool bEnable) toggles whether or not the camera should rotate or zoom with the mouse, and HandleMouseScroll(bool bUp) handles what to do when the mouse is scrolled up or down.

Allar’s Dev Diary #12: Day 1, Tower Defense Side Project

So a class at my school, the Art Institute of Orange County, called Advanced Level Design has 11 weeks to create a Tower Defense game. I've already taken the class, but I have a few friends taking it now. They are currently seven weeks in and are only in the blockout stages of the game. I've been asked by a few of these students, and also by a significant amount of people through e-mail about how I would approach building a Tower Defense game in terms of design and implementation with UDK but I don't have any experience in making a Tower Defense game at all. Well thats now going to change.

Taking a note from Dungeon Defense, I thought it'd be nice to document my approach and maybe give some info about how certain things can be implemented. In no way do I claim that this is the 'right' way of doing things. This is a purely experimental project to teach me things about AI, pathing, and etc that I haven't had any experience with yet. In any case, here we go.

Also, I may or may not be live streaming my desktop. http://www.livestream.com/awesomeallar

Day 1 (11/19/2010)


1. The Design Document


Yeaaaaaaaaah I don't really have a design document. I'll design elements as I go. This is a very very bad route I know, but I want to get right into testing out implementation features and building stuff. :D

2. Designing The First Level


Designing the first level for a new game is one of the biggest hurdles that a team can face. The first level is where everything 'hits the fan' for the first time, although definitely not the last time. It is where you realize that your design doc may be lacking in some areas, or simply void of needed information all together. The first level also demonstrates how well the team is coordinated and if the vision for the game was successfully synchronized amongst the team members. While the first level design should be one that is well thought out and discussed to no end, it is also the design which you must be the most accepting to throw away. Rarely does the first level come to fruition in the same way that the vision intends, either due to design flaws, technological barriers, or simply the team just doesn't want to do it anymore. With these snakes and spikes riddling your path on the way to get your first level implemented, one should design the first level in the simplest way possible that will just touch on the designs of the game instead of trying to fully implement every single feature immediately upon game start. Not only will this let you build levels iteratively and incorporate more advanced design implementations later as the pipeline becomes more concrete, it gets people working on small manageable tasks that they can envision done by the end of the week instead by the end of the quarter.

Thursday, November 18, 2010

Allar's Dev Blog #11: Pathing Fail

Sorry about the long time between posts... been working over at Emotional Robots, Inc so I've been busy working on stuff I can't talk about... but I have a pretty big update coming soon that I know a few people out there will really enjoy. in the mean time, heres this.

Wednesday, September 29, 2010

Allar's Dev Diary #10: Parallax Occlusion

Parallax Occlusion basically makes shadowy parts where you expect shadowy parts on objects, but with parallax. The wall that you see is a piece of completely flat bsp.

Tuesday, September 28, 2010

Indie Game Challenge 60 Second Pitch Video

Alright, my fellow student game development team "Team Forecourse"  just mailed our submission off to the Indie Game Challenge! Heres hoping we get somewhere…

But as per submission, we were required to do a 60 second ‘pitch’ video. Its amazing how short 60 seconds really is, the video was hastely done to get it sent in time so there is a bit of an aburpt ending but hopefully later we’ll be able to smooth that out in the future. Watch it, and enjoy!

Monday, September 20, 2010

Gold Mine - Fly through Rough Cut - Alex Merz - Team Forecourse

First media update for Plastic Warfare, a student game project under development by Team Forecourse! Whoooo! Here is a rough cut of a fly through of our Gold Mine level by Alex Merz.

Gold Mine - Fly through Rough Cut - Alex Merz - Team Forecourse from Michael Allar on Vimeo.

The first rough fly through of Gold Mine, a level designed and built by Team Forecourse's Lead Level Designer Alex Merz, with Creative Director Cordell Felix and Producer Michael Allar and the rest of Team Forecourse. Built in UDK for the game Plastic Warfare.

Camera picked up some weird post process interpolation times, will be revised in the next cut. Also in need of some basic video editing.

Sunday, September 12, 2010

Forecourse Spotlight: Brian 'spilth' Kelly's UDK Marble Madness


I thought this was kinda cool, check it out.

Sorry for the lame audio quality, compressed kinda owned it hard.



Thread: http://forums.epicgames.com/showthread.php?t=74354
Vimeo: http://www.vimeo.com/14568219
Game Blog: http://marbleudk.wordpress.com/
Github: http://github.com/spilth/marbleudk

Day and Night Cycle Tutorial


Written Version


Subject: Day and Night Cycle Tutorial
Author: II Patch

Read it here!

Video Version


Subject: Day and Night Cycle Tutorial Step by Step
Skill Level: Intermediate
Run-Time: 1 Hour and 30 minutes
Author: Michael Allar
Notes: Original tutorial by II Patch over at UDK Forums

Download: [download id="6"]

^If the download link opens in browser, go ahead and right click and use Save Target As... to download.

Friday, September 10, 2010

Forcecourse Spotlight: The Portfolios of Greg Canada and Sean Moallem

Two fellow classmates of mine, Greg Canada and Sean Moallem at The Art Institute of Orange County have produced a cool tribute to Day of Defeat's Avalanche created with UDK, thought you guys should check them out and hopefully drop them both an e-mail inspiring to do more awesome work!

Greg Canada's Portfolio
Sean Moallem's Portfolio

My intro to Greg Canada and Sean Moallem:


Here is a video of their project Operation: Avalanche, a Day of Defeat tribute done in UDK.

Thursday, September 9, 2010

ForecourseUI Update for July (Possibly August)

Hello folks!

Here is an update to ForecouseUI and changes go the CLIK classes that I have done to make the current version of ForecourseUI to work. This currently works for the July build as I have not migrated to August but I will migrate to September once its out so expect a new ForecourseUI update then as well.

The unreal code is not in this file so you must download the original ForecourseUI files to install the unreal side of things.

This video is of me posting the update, because I realized after I started recording that I was too tired to do a how-to implementation. Sorry.



If this does work with August, please tell me!

[download id="3"]
[download id="5"]

Sunday, August 29, 2010

Allar's Dev Diary #9: Allar's Head + FaceFX

Created a 3d model of my head with FaceGen
Adrian Rodriguez rigged it and did some fancy FaceFX graph stuff.
Nicolas Ziegler lent his voice.
I imported .wav files, edited their animation graphs, shoved it all in mattinee.

This is the result.

Tuesday, August 10, 2010

The Hunt - Hole 1 Preview by An-Tim Nguyen

Preview of one of our first levels done by the QueSpeck Studios team. Our Lead Environment Artist (among other things) An-Tim Nguyen, has put together this nice little video. Enjoy!

Saturday, July 24, 2010

The Hunt - TV Interview

Project Lead for The Hunt, a student based game project I am currently Technical Director/Lead Programmer of, recently did a bit for Time Warner Cable. I'm the guy with the long and rattly hair lurking in the occasional shot. No true official coverage of me, mainly because programming just makes some boring television.

Monday, June 7, 2010

Making A Menu: ScaleForm Tutorial Series

Hello thar! ScaleForm tutorials seem to be the latest craze so I've decided to make a series in regards to making a menu in ScaleForm.



You can view the final result of this series here.

There are two sets of videos depending on your skill with flash, if you are new to flash check out this series:

Part 1: Making a Menu: Setting Up ScaleForm for Flash
Part 2: Making a Menu: Installing ForecourseUI for ScaleForm and UDK
Part 3: Making a Menu: Scaleform + Forecourse UI Components Part 1
Part 4: Making a Menu: Scaleform + Forecourse UI Components Part 2
Part 5: Making a Menu: Adding Button Functionality
Part 6: Making a Menu: Adding Button Functionality Part 2
Part 7: Making a Menu: Basic Kismet Integration
Part 8: Making a Menu: FSCommands + Animating the Camera
Part 9: Making a Menu: Kismet + ForecourseUI Camera Helper
Part 10: Making a Menu: Adding a Cursor
Part 11: Making a Menu: Finished! Heres Some More Info

If you are already experienced with Flash and have ScaleForm installed, or only want to spend 30 minutes learning how to do this, follow this shorter series:

Part 1: Making A Menu: Installing ForecourseUI for ScaleForm and UDK -- 6 Minutes
Part 2: Making A Menu: Fast: Building the Flash Menu Part 1 -- 8 Minutes
Part 3: Making A Menu: Fast: Building the Flash Menu Part 2 -- 3 Minutes
Part 4: Making A Menu: Fast: Integration with Unreal (Still Uploading) -- 9 Minutes

Link to ForecourseUI Download: http://forecourse.com/udk-development/

Note: For some reason my youtube playlist has things a bit out of order but I re-ordered the videos... I suppose it takes time for it to update that I suppose.

Sunday, May 23, 2010

Allar's Dev Diary #6: Basic Level

Building a level for my Advanced Level Design class. I'm a programmer so the assets are.... well, yeah.

Anyways, heres the video if you are interested.

http://www.forecourse.com/unreal/TwoRivers3Days/TwoRivers3Days.html

Tuesday, May 4, 2010

Allar's Dev Diary #5: Public LAN Port Scanner

Yup. Its a quick and dirty LAN port scanner. If you need one binded into UnrealScript, here you go, if not, move along.

With the binded DLL, you can scan your network for any open ports, given the port to hunt for.

If your game server is on port 7777 (which is what I use, you can set this by the ?port=7777 option on your servers command line or in your config files by Port=7777) and you do a lan scan on port 7777, it will find your server and store its IP address in an array of IPs that will also contain any other game servers on port 7777 on your same subnet mask.

Because it essentially is just a port scanner, it doesn't do anything fancy, and can create false positives if you have another service on the same port responding to udp communication.

Hopefully the included documentation within the code and the video below will be enough for you to use it.

I will be releasing more and more features for it when it becomes more and more refined and awesome.



Download here. If you would like to link to these files, please link to this page and not the files directly.

[download id="1"]
[download id="2"]

Allar's Dev Diary #4: Custom Character + Weapon Assets

Just some custom assets I've assembled/created and implemented into my code. They should be replaced with proper artist assets later on but its more of a demonstration of a custom weapon that reloads, animates, plays sound, etc without any ut classes.

Tuesday, April 27, 2010

Allar's Dev Diary #3: ListBox Example

Yeah, I rambled a lot again. This is shows my ListBox element in action, along with a sneak peak at a server browser.

Streaming: 1080p 480p

Download: 1080p 480p

Allar's Dev Diary #2: ABUIScene Overview

Yeah, I rambled a lot. This is probably a waste of time to watch, but its how I'm working with UIScenes (or lack thereof).

Streaming: 1080p 480p

Download: 1080p 480p

New Project: Allar's Dev Diary

I know I haven't been able to upload some new UnrealScript tutorials in awhile, and that is because school has flooded me with work and I also have to catch up on a lot of work I need to do for a few team projects (The Hunt and Western Mercs). I also have been working on my book.

While I don't know how much time a week I can devote to tutorial making, I will be trying to do a short video at least once a week talking about the progress I've made on the projects I'm working on in an effort to share my development pipeline experiences week by week and allow me to remember what I did that past week. It might actually be interesting, or really boring. In any case, I hope you tune in a bit some times.

These "Dev Diary" entries will generally be in video form. I am considering hosting these entries on YouTube or a similar video hosting site. We'll see how that goes.

Well, here goes the first video. Looks like its already unsync'ed, and stuff, great. I'll be uploading my videos from now on instead of doing direct webcam recordings.

Thursday, April 8, 2010

Tutorial Creation Slowed But Not Halted

It is time for me to return to school again for another exciting quarter, which also means I will have less time for creating tutorials. This series will still be under development, just at a slower pace. Another reason for my slight slow-down is that I am attempting at turning my series into a real book. You will see that on most future tutorials (and most of the ones I already have posted) do not have that much of an in-depth written version as I am spending my time writing for my book instead. For an example of how a chapter of this book will read, please read my Creating a Third Person Camera tutorial. Hopefully I will be able to have an editor proofread my work however to ensure even further clarity, but that is all in time.

If anyone has written a book before, has connections with some publishers, or have self-published a book before, I would love to get in contact with you as I am completely new to the book writing world in all its aspects. Thanks.

Happy developing!

HTWeapon: Part 6 - Hiding First Person Mesh In Third Person

Video Version


Subject: HTWeapon: Part 6 - Hiding First Person Mesh In Third Person
Skill Level: Beginner
Run-Time: 5 minutes
Author: Michael Allar
Notes: How to make your weapon deal damage upon firing.

Streaming:     720×480 1920×1080

Download:     Low-Res (18MB) Hi-Res (22MB)

Written Version


Subject: HTWeapon: Part 6 - Hiding First Person Mesh In Third Person
Skill Level: Beginner
Author: Michael Allar
Notes: How to hide your first person mesh while in third person

No written version here, just code. If you want to write this up, contact me.

Thursday, April 1, 2010

Do You Have A Tutorial Of Your Own?

As you might have noticed, I have a lot of UnrealScript related tutorials on my site. Infact, they are all UnrealScript related, but I'd like to change that.

Do you have a tutorial of your own that you would like to see list on my site or even have your tutorial viewable on my site with free space for video hosting?

The benefits of posting your tutorials here include free ftp space for your doings for your tutorial content and private space for any Unreal related projects you are working on or want to distribute*, viewer stat tracking*, the satisfaction of helping a good person expand his site (:D), exposure, and a place for people to comment on your tutorials. If more than a few come forward and submit their tutorials, I will create a page listing every author who has contributed along with links to their sites/profiles/portfolios/etc. If I ever go commercial with a book or DVD, we might be able to work out a deal of some sort to get you included on it along with a percentage of profit equivalent to the amount you would contribute to such product. This page alone has hit 5,500 page views within three weeks, while all the pages on this site total for 20,000 page views in that same three weeks. There are an average of 300 visitors a day currently browsing this site as well, and this count is steadily increasing.

There are a few requirements that must be met however:

  • Your tutorial must be created by you.

  • Your tutorial should not be about anything already existing on the site, unless it is offering an alternative way to do something or has a reasonable change to it in one way or another.

  • Your tutorial should be of high quality with good spelling and grammar usage in English.

    • If you would like to translate any of the tutorials on this site into a non-English language, video or written, please e-mail me.



  • If you choose to post a tutorial onto this site instead of linking to it, it must not break the formatting of my site.

  • If you choose to post a tutorial onto this site instead of linking to it, you must accept the terms that your tutorial might be edited for any reason.


I am looking for tutorials of any kind about information this site does not have already.

To submit a tutorial as a link, please e-mail me at allar@michaelallar.com with information about your tutorial, about you, and a link to it. If it meets the above requirements, it will be listed on the UDK Tutorials page.

To submit a tutorial directly onto this site, please register for an account and make a post! Your post will be reviewed by me and will be published if it meets the above requirements, along with it being listed on the UDK Tutorials page.

Thanks for reading, and hopefully some of you will submit your tutorials! Huzzah!

*Only applies for those who post their tutorials directly onto my site.

Wednesday, March 31, 2010

Fixing Character Lighting

Video Version


Subject: Fixing Character Lighting
Skill Level: Beginner
Run-Time: 5 Minutes
Author: Michael Allar
Notes: If your character is pitch black no matter what you do, this is the fix.

Streaming:     720×480 1920×1080

Download:     Low-Res (18MB) Hi-Res (23MB)

Written Version


Subject: Fixing Character Lighting
Skill Level: Beginner
Author: Michael Allar
Notes: If your character is pitch black no matter what you do, this is the fix.

Creating A Third-Person Camera

Where is the video version? Its below the written version, because the written version came out much better.

Written Version


Subject: Creating A Third-Person Camera
Skill Level: Intermediate
Author: Michael Allar
Notes: How to implement a third person camera.

Sunday, March 28, 2010

HTHUD: Part 3 - Implementing a Multi-Layered HUD + HUD Bars

Video Version


Subject: HTHUD: Part 3 - Implementing a Multi-Layered HUD + HUD Bars
Skill Level: Beginner
Run-Time: 1 Hour
Author: Michael Allar
Notes: Drawing our different HUD passes so that they stack on top of each other, along with making our health and ammo bars fill up or deplete based on current health and ammo.

Streaming:     720×480 1920×1080

Download:     Low-Res (172MB) Hi-Res (232MB)

Written Version


Feel like doing some writing? Want to get noticed? Write me up a version of this video for me.

HTHUD: Part 3 - Setting Up A Multi-Layered Dynamic HUD

Video Version


Subject: HTHUD: Part 3 - Setting Up A Multi-Layered Dynamic HUD
Skill Level: Intermediate
Run-Time: 25 Minutes
Author: Michael Allar
Notes: Displaying our current health to the screen.

Streaming:     720×480 1920×1080

Download:     Low-Res (73MB) Hi-Res (100MB)

Written Version


Feel like doing some writing? Want to get noticed? Write me up a version of this video for me.

Saturday, March 27, 2010

HTHUD: Part 3 - DisplayHealth()

Video Version


Subject: HTHUD: Part 3 - DisplayHealth()
Skill Level: Beginner
Run-Time: 22 Minutes
Author: Michael Allar
Notes: Displaying our current health to the screen.

Streaming:     720×480 1920×1080

Download:     Low-Res (73MB) Hi-Res (100MB)

Written Version


Subject: HTHUD: Part 3 - DisplayHealth()
Skill Level: Beginner
Author: Michael Allar
Notes: Displaying our current health to the screen.

HTHUD: Part 3 - Ammo Text Offsetting + Resolution Scaled Text

Video Version


Subject: HTHUD: Part 3 - Ammo Text Offsetting + Resolution Scaled Text
Skill Level: Beginner
Run-Time: 35 Minutes
Author: Michael Allar
Notes: Moving our ammo HUD texture over to the right side of the screen and offsetting our text to rest to the left of it, right aligned against our image. The text will also become resolution scaled so that it looks the same at any resolution. We also add functionality to scale all of our hud text.

Streaming:     720×480 1920×1080

Download:     Low-Res (88MB) Hi-Res (124MB)

Written Version


Subject: HTHUD: Part 3 - Ammo Text Offsetting + Resolution Scaled Text
Skill Level: Beginner
Author: Michael Allar
Notes: Moving our ammo HUD texture over to the right side of the screen and offsetting our text to rest to the left of it, right aligned against our image. The text will also become resolution scaled so that it looks the same at any resolution. We also add functionality to scale all of our hud text.

Friday, March 26, 2010

Creating a Health Hud Icon

Video Version


Subject: Creating a Health Hud Icon
Skill Level: Beginner
Run-Time: 8 minutes
Author: Michael Allar
Notes: Creating a really ugly health hud icon.

If you are an artist, please skip this tutorial. This tutorial is meant for those who have no idea how to create any type of art asset. It is done by a programmer, so the methods involved will produce extremely ugly results.


Streaming:     720×480 1920×1080

Download:     Low-Res (22MB) Hi-Res (25MB)

End Result:


HTWeapon: Part 5 - Dealing Damage

Video Version


Subject: HTWeapon: Part 5 - Dealing Damage
Skill Level: So easy a caveman can do it.
Run-Time: 5 minutes
Author: Michael Allar
Notes: How to make your weapon deal damage upon firing.

Streaming:     720×480 1920×1080

Download:     Low-Res (22MB) Hi-Res (27MB)

Written Version


Subject: HTWeapon: Part 5 - Dealing Damage
Skill Level: So easy a caveman can do it.
Author: Michael Allar
Notes: How to make your weapon deal damage upon firing.

Thursday, March 25, 2010

Fixing The Loading Movie For Multiplayer Clients

Video Version


Subject: Fixing The Loading Movie For Multiplayer Clients
Skill Level: Beginner
Run-Time: 21 minutes
Author: Michael Allar
Notes: When you host a mutliplayer game with the current code, clients will join but they will get stuck at a loading screen endlessly. This fixes that. Also introduces GameReplicationInfo.

Streaming:     720×480 1920×1080

Download:     Low-Res (70MB) Hi-Res (95MB)

Written Version


Subject: HTWeapon: Part 3 – Creating a Dynamic Muzzle Flash Light
Skill Level: Beginner
Author: Michael Allar
Notes: When you host a mutliplayer game with the current code, clients will join but they will get stuck at a loading screen endlessly. This fixes that. Also introduces GameReplicationInfo.

HTWeapon: Part 4 - Creating a Dynamic Muzzle Flash Light

Video Version


Subject: HTWeapon: Part 4 - Creating a Dynamic Muzzle Flash Light
Skill Level: Beginner
Run-Time: 17 minutes
Author: Michael Allar
Notes: How to implement a UDKExplosionLight for your muzzle flash so that your gun will light up its surroundings when fired.

Streaming:     720×480 1920×1080

Download:     Low-Res (75MB) Hi-Res (100MB)

Written Version


Subject: HTWeapon: Part 4 - Creating a Dynamic Muzzle Flash Light
Skill Level: Beginner
Author: Michael Allar
Notes: How to implement a UDKExplosionLight for your muzzle flash so that your gun will light up its surroundings when fired.

Wednesday, March 24, 2010

HTWeapon: Part 3 – Creating A Muzzle Flash

Video Version


Subject: HTWeapon: HTWeapon: Part 3 – Creating A Muzzle Flash
Skill Level: Beginner
Run-Time: 1 Hour
Author: Michael Allar
Notes: How to implement a ParticleSystem to use as a muzzle flash for your weapon.

Streaming:     720×480 1920×1080

Download:     Low-Res (156MB) Hi-Res (226MB)

Written Version


Subject: HTWeapon: Part 3 – Creating A Muzzle Flash
Skill Level: Beginner
Author: Michael Allar
Notes: How to implement a ParticleSystem to use as a muzzle flash for your weapon.

HTHUD: Part 1 - Update: Fix Chat Messages

I've stumbled across something I forgot to include in HTHUD: Part 1, and that is two lines of code that display our console and chat messages.

It directly fixes PrintScreenDebug() if you are using that function.

HTHUD


[csharp]function DrawGameHud()
{
DisplayLocalMessages();
DisplayConsoleMessages();
DrawLivingHud();
}[/csharp]

Creating A Muzzle Flash Particle System

Video Version


Subject: Creating A Muzzle Flash Particle System
Skill Level: Beginner
Run-Time: 17 minutes
Author: Michael Allar
Notes: Creating a generic muzzle flash to use with our weapons. The end result here looks pretty bad, but it works. Hey, I'm a programmer, not an artist.

If you already know how to create your own particle systems, just make a muzzle flash yourself. This tutorial is intended for people completely new to cascade like me and the result works, but is rather ugly. Or, if you are a programmer and have access to a technical artist, have them create your particle systems for you. (That is what I do :D)

Streaming:     720×480 1920×1080

Download:     Low-Res (53MB) Hi-Res (65MB)

Tuesday, March 23, 2010

3D Scripting Final

I had to do some sort of script for Maya for my final for "3D Scripting".

Some students are doing tool sets, generators of different kinds, etc. Basically useful things.

I created the most complex useless thing I could think of at the time. And here it is.

Allar's Melbik's Cube

Also, it turns out someone recently uploaded a Rubik's cube script 6 days ago to CreativeCrash. Way2Suck. However my script doesn't require you to open another mel document. Everything is generated from the script. Those of you that know Mel script will see that I did the really really lazy way of generating things, so yes that code is ugly. The actual cube code I think is rather elegantly implemented.

Sunday, March 21, 2010

Finals Week For Me

This upcoming week is finals week at The Art Institute of Orange County, so tutorial making will be slowed but not it shall not stop.

I was hoping to have a lot more weapon implementation up by today, but thats okay. I have quite some content already done that just needs uploaded and formatted and I'll get to it when I can, I just have to hammer out a few school projects first.

Also I want to give a big thank you to John Sonedecker over at BlackFoot Studios for the first donation towards my microphone fund. Please check out his site. It is actually pretty awesome. He will be the first to be listed on People Who Are Awesome.

Saturday, March 20, 2010

Donations For Better Microphone Would Be Lovely

While there are a few things I still need to work on to produce better and better quality tutorials, like my stuttering and rambling, audio quality is something that can be fixed immediately instead of over time through the power of hardware! I'm currently using a microphone I got with an ASUS motherboard about 5 years ago. While it is one of the better microphones I've owned, I've realized that to get good audio for these video tutorials, I will need something along the lines of a condenser microphone. While I'm not really audio savvy at all, I've had the joy of testing out some microphones and found that I really liked this microphone here. The problem is that I'm a college student and can hardly afford food sometimes.

If you would like to donate, please click the donate button to the right in the side bar.

Friday, March 19, 2010

HTWeapon: Part 2 – DrawWeaponCrosshair()

Important: I didn't notice this until after I posted this but my stuttering is pretty bad in this video. Just a heads up. I will re-do this in the future.

Video Version


Subject: HTWeapon: Part 2 – DrawWeaponCrosshair()
Skill Level: Beginner
Run-Time: 30 minutes
Author: Michael Allar
Notes: Going over how to have our weapons handle the drawing of our crosshair.

Streaming:     720×480 1920×1080

Download:     Low-Res (111MB) Hi-Res (160MB)

Written Version


Subject: HTWeapon: Part 2 – DrawWeaponCrosshair()
Skill Level: Beginner
Author: Michael Allar
Notes: Going over how to have our weapons handle the drawing of our crosshair.

Wednesday, March 17, 2010

HTHUD: Part 2 - Learning To Use Configuration Files

Video Version


Subject: HTHUD: Part 2 - Learning To Use Configuration Files
Skill Level: Beginner
Run-Time: 30 minutes
Author: Michael Allar
Notes: Creating variables in our HTHUD class that are assignable through our .ini configuration files so our end-users can tweak our game settings to their liking.

Streaming:     720×480 1920×1080

Download:     Low-Res (75MB) Hi-Res (115MB)

Written Version


Subject: HTHUD: Part 2 - Learning To Use Configuration Files
Skill Level: Beginner
Author: Michael Allar
Notes: Creating variables in our HTHUD class that are assignable through our .ini configuration files so our end-users can tweak our game settings to their liking.

Sorry about the indentation, it seems like my indentation will not survive copy paste… I will go back and fix the indentation later.

Robot Unicorn Attack

While I wait for tutorials to render to post on my site, this is what I do.

Click here to watch me play. I don't know why you would be interested, but if you are, who am I to deprive you of such options in life.

Tuesday, March 16, 2010

Introduction

Extended Audio Version


A .mp3 of me rambling about what I'm doing.

Brief Written Version


I am Michael Allar, and I am Lead Programmer for The Hunt, a game being developed under a student group at The Art Institute of Orange County by the name of queSPECK.

My goal here with my site is to create a tutorial series that will show one how to start from scratch and to end up with a playable result, teaching them what they need to know along the way to implement their own designs.

I highly recommend using the February build when following these tutorials, as long the way you will migrate to March and any other future builds that may come out during this process. However you can start with what ever version you want, there just might be a few things you need to rework in some parts.

Migrating From February to March

Video Version


Subject: Migrating From February to March
Skill Level: Beginner
Run-Time: 30 Minutes
Author: Michael Allar
Notes: Migrating our code base from Feb. to March.

Streaming:     720×480 1920×1080

Download:     Low-Res (117MB) Hi-Res (167MB)

Written Version


Subject: Migrating From February to March
Skill Level: Beginner
Author: Michael Allar
Notes: Migrating our code base from Feb. to March.

See video for an in-depth explanation. Sorry about the indentation, it seems like my indentation will not survive copy paste… D: I will create a written tutorial soon.

Monday, March 15, 2010

Return from GDC 2010

I've just gotten back from the Game Developer's Conference in San Francisco, and it was pretty amazing. I shall resume my tutorial series tomorrow (March 16th) so be welcome to post feedback and what I can do to make it better around here. I will post more about GDC as well when I am feeling a bit better as I caught some sort of sore throat during my time in San Francisco. Until then, happy development!

Tuesday, March 9, 2010

HTHUD: Part 1 - Building The Base Class + Displaying Ammo

Video Version


Subject: HTHUD: Part 1 - Building The Base Class + Displaying Ammo
Skill Level: Beginner
Run-Time: 1 Hour and 30 Minutes
Author: Michael Allar
Notes: Creating a new HUD class and having it display our current weapons ammo.

Streaming:     720×480 1920×1080

Download:     Low-Res (236MB) Hi-Res (337MB)

Video Update 3/25/2010


Run-Time: 2 Minutes
Notes: Fixes chat messages not displaying.

Streaming:     720×480

Download:     Low-Res (7MB)

Written Version


Subject: HTHUD: Part 1 - Building The Base Class + Displaying Ammo
Skill Level: Beginner
Author: Michael Allar
Notes: Creating a new HUD class and having it display our current weapons ammo.

See video for an in-depth explanation. Sorry about the indentation, it seems like my indentation will not survive copy paste… D: I will create a written tutorial soon.

Monday, March 8, 2010

HTWeapon: Part 1 - Adding Ammo

Video Version


Subject: HTWeapon: Part 1 - Adding Ammo
Skill Level: Beginner
Run-Time: 30 minutes
Author: Michael Allar
Notes: How to implement a very basic ammo system in our custom weapon class, taking code from UTWeapon.

Streaming:     720×480 1920×1080

Download:     Low-Res (66MB) Hi-Res (200MB)

Written Version


Subject: HTWeapon: Part 1 - Adding Ammo
Skill Level: Beginner
Author: Michael Allar
Notes: How to implement a very basic ammo system in our custom weapon class, taking code from UTWeapon.

See video for an in-depth explanation. Sorry about the indentation, it seems like my indentation will not survive copy paste... D:

Beginning Your Game Part 4

Video Version


Subject: Beginning Your Game Part 4
Skill Level: Beginner
Run-Time: 54 Minutes
Author: Michael Allar
Notes: Setting up HTInventoryManager, HTInventory, HTWeapon

Streaming:     720×480 1920×1080

Download:     Low-Res (32MB) Hi-Res (200MB)

Written Version


Subject: Beginning Your Game Part 4
Skill Level: Beginner
Author: Michael Allar
Notes: Setting up HTInventoryManager, HTInventory, HTWeapon

See the video for an in-depth explanation.

Beginning Your Game Part 3

IMPORTANT


This tutorial was created with the March build of UDK, as opposed to the February build.

This is a big -MY BAD- on my part.

The rest of the tutorials flow nicely after this. I promise.

Here is what you do:

You download the March build.

You install it.

You set up the config files just like you have been doing in Part 1 and Part 2.

YOU THEN DOWNLOAD THIS .ZIP which has the code finished from Part 3. Don't worry about what you are missing out, if you read through the tutorial you'll get the important stuff.

Open UTGameConfigDefaultGame.ini

Replace the Engine.GameInfo block with the following:

[csharp][Engine.GameInfo]
DefaultGame=UDKGame.UDKGame
DefaultServerGame=UDKGame.UDKGame
PlayerControllerClassName=UDKGame.HTPlayerController
GameDifficulty=+1.0
MaxPlayers=32
DefaultMapPrefixes=(Prefix="HT",GameType="UDKGame.TheHuntGame")[/csharp]

What we did there was move the DefaultMapPrefixes from DefaultProperties to this .ini file, as thats where the March build put it. You will learn how to do stuff like this later on as well.

When you compile, you will get a warning about HTInventoryManager. This will fix itself when you complete step 4.

Then continue to Step 4.

Also, skip Migrating From Feb. To March. since you are now using the March build. <_<

Sorry. These were my first tutorials I've made and I was bound to mess up somewhere. All the future tutorials after this will go smoothly. I will try to redo these first three later when I have some spare time.















Sunday, March 7, 2010

Adding an M16: Part 2.5 – Dummy Rigging

Video Version


Subject: Adding an M16: Part 2.5 – Dummy Rigging
Skill Level: Beginner
Run-Time: 10 minutes
Author: Michael Allar
Notes: Rigging a temporary M16 slug model to use for testing purposes using dummy objects.

Streaming:     720×480 1920×1080

Download:     Low-Res (17MB) Hi-Res (35MB)

Click here to continue to Part 3:  Preparing Model For Implementaton

Adding an M16: Part 2 – Geometry Rigging

Important Note:


During the video, I mention that all weapons point down the Y axis. I was basing this knowledge off of the Shock Rifle, which turns out is coded to be rotated to be facing down the X axis like the Rocket Launcher. Your model can face down any axis in 3DS Max, but make sure that after you import it that it faces down the X axis using the Rot Origin properties. You can leave it facing in the Y axis if you want, as adjusting the rotation in the weapon's code is also really easy to do too and I will go over how to do so in the code part of this tutorial series.

Video Version


Subject: Adding an M16: Part 2 – Geometry Rigging
Skill Level: Beginner
Run-Time: 21 minutes
Author: Michael Allar
Notes: Rigging a temporary M16 slug model to use for testing purposes.

Streaming:     720×480 1920×1080

Download:     Low-Res (47MB) Hi-Res (84MB)

Click here to continue to Part 2.5:  Dummy Rigging (Optional)

Click here to continue to Part 3:  Preparing Model For Implementation

Written Version


Subject: Adding an M16: Part 2 – Geometry Rigging
Skill Level: Beginner
Author: Michael Allar
Notes: Rigging a temporary M16 slug model to use for testing purposes.
Prerequisites: UDK, 3DS Max, ActorX

Adding an M16: Part 1 - Modeling

Video Version


Subject: Adding an M16: Part 1 - Modeling
Skill Level: Beginner
Run-Time: 21 minutes
Author: Michael Allar
Notes: A temporary M16 slug model to use for testing purposes.

Streaming:     720×480 1920×1080

Download:     Low-Res (54MB) Hi-Res (94MB)

Click here to continue to Part 2: Rigging

Friday, January 15, 2010

Beginning Your Game Part 2

Video Version


Subject: Beginning Your Game Parts 1 and 2
Skill Level: Beginner
Run-Time: 1 Hour
Author: Michael Allar
Notes: This is really incredibly long but goes over how to create a blank slate for your game. Also goes somewhat in-depth on a line-by-line basis.

Streaming:     720×480 1920×1080

Download:     Low-Res (66MB) Hi-Res (200MB)

Written Version


Subject: Beginning Your Game Part 1
Skill Level: Beginner
Author: Michael Allar
Notes: Gets your UDK set up so that you can start coding into your own game class!

You will have needed to have done Beginning Your Game Part 1 if you are sticking to the written series of these tutorials. The video tutorial on both tutorials covers both parts.

Why Is There A Part 2?


So, we now have an empty game mode that we can now start coding into. Great! Why don't we start going over UnrealScript and start adding our own things?

Well simply put, we aren't done yet. While we have our own game mode set up now, we still are using Epic's player logic instead of a blank slate for us to use. The way the Unreal Engine handles player interaction is pretty important to understand:

Beginning Your Game Part 1

IMPORTANT: Use the March build of UDK


These beginning 4 tutorials got screwed over in a Feb/March mixup. These first two used Feb while the rest of this entire site uses March.

You will get a few warnings when following the first two parts, but there isn't too much code here. It will begin working fully after parts 3 and 4.

If you can make it past 4, these tutorials are pretty solid and will be a hell of a lot easier.

I'll try to remake these first tutorials soon.

Video Version


Subject: Beginning Your Game Parts 1 and 2
Skill Level: Beginner
Run-Time: 1 Hour
Author: Michael Allar
Notes: This is really incredibly long but goes over how to create a blank slate for your game. Also goes somewhat in-depth on a line-by-line basis.

Streaming:     720×480 1920×1080

Download:     Low-Res (66MB) Hi-Res (200MB)

Written Version


Subject: Beginning Your Game Part 1
Skill Level: Beginner
Author: Michael Allar
Notes: Gets your UDK set up so that you can start coding into your own game class!

If you haven’t already, you need to install a fresh copy of Epic’s Unreal Development Kit (UDK). Without it, you can’t really build anything.

You also need a way to edit .ini and .uc files. Notepad will work, but I strongly recommend setting up nFringe or Notepad++.

It is highly recommended that you also set up UnCodeX.

At the time of this writing, the UDK version used is UDK-2009-12.

Setting Up Your Code Package


In order to begin coding your new game, you first have to put your code somewhere where the Unreal Engine can find it. This is where the DevelopmentSrc folder comes into play. All the code for your game belongs in the DevelopmentSrc folder, and your code that you will create will be in a folder with a meaningful name that represents your game. Each folder in DevelopmentSrc is a script package, so we call GameFramework, UTGame, UTGameContent, etc "script packages". In each script package there is a folder within labeled "Classes" where all your UnrealScript classes will go. UnrealScript Classes are how you extend functionality to your game, making it your own. There lies a folder upon installation in Src named MyMod, you may use this folder to place your code in but I highly recommend naming it similar to your game name but keep in mind that you shouldn't use spaces or weird characters in your package name as it will have to be referenced in code many times. You will see that for this tutorial, I have used "UDKGame" as my script package name. Inside this MyModClasses folder you will find a DO_NOT_DELETE.txt, but feel free to delete this. It seems that this file was only needed for Epic to package the installer correctly. Right now this script package is empty, so lets get ready to add to it!