Into the Unknown: UDK Part 4

I’ve finally reached that breaking point where I am comfortable with the Unreal Engine. I may not have knowledge of every aspect, but I am finally understanding the basic axioms driving the inner workings, which allows me to intuitively understand where to look when I am stumped. The unfixable problems are falling away as my problem-solving abilities increase with respect to the environment. When you are utterly clueless about the engine, it can be difficult to know what kind of help to look for.

So in the past few weeks I began working on the project again. This time, I would build up an easy, lightweight framework from the UDK (rather than UT) packages — that is, I started out with much less pre-built functionality so that I could understand everything that was going on.

I succeeded. So far I’ve built a basic Pawn framework (Pawns are objects controlled by players or AI) with a custom crouch system and an Inventory Manager that better suits my needs. I’m also working on a Weapon system, although I haven’t implemented sounds, particle effects, etc. My HUD system is minimal, but so far that is all I need.

When I need to, I go to the UT packages and look at their implementations. However, the number of times I’ve copied and cut down code has decreased dramatically. Now I can write my own code with confidence that it does everything I want it to (note that although I am perfectly comfortable coding, it is more about knowing which function calls go where in the logic chain, and what to reference).

Note that I don’t have grenades, vehicles, sounds, shields, AI, other characters, or environments yet. However, I’m more comfortable having a small, solid base of functionality that I completely understand, rather than a thin spread of half-implemented, opaque features. Down one road lies abandonment, down the other lies slow but steady plodding to completion.


Into the Unknown: UDK Part 3

My exploration has continued to go off the expected tracks. For some unearthly reason I decided that my first goal would be to port a character model from Halo to the UDK. Well, I’ve learned a lot through my experimentation. The first thing, of course, is to get the model. I downloaded a low-poly model of the Halo 3 version of the Master Chief from Halomaps. The great thing about downloading a tagset for Halo: Custom Edition is that the model comes with a bitmap. A lot of the 3D models on that site are better quality, but lack textures.

Easy-Bake MC (broken image)

So, using conversion utilities also downloaded from Halomaps, I converted from the Gearbox formats to 3DS and TARGA formats for models and bitmaps respectively. The models come pre-skinned, so all I have to do is load in the texture. Of course, I also have to do any rigging I need. Thus, I re-learned rigging in 3dsMax this week. Strangely enough, the vocabularly is ambiguous when it comes to this process. To my knowledge, rigging refers to either the creation of the skeleton OR the application of vertex weighting to a mesh. Similarly, skinning can mean vertex weighting OR texturing. Very strange.

I used one of the skeletons that Epic provides, because it means that you can use the animation sets already in the UDK. I got my Master Chief model in-game finally. There is a lot of boilerplate scripting that goes into creating a new player-character. I also had to fix an (apparanetly prevalent) issue in which any character model (even the examples that Epic provided) would float above the ground. According to online forums, all I had to do was move the origin of the mesh down. Well, little did I know that there are actually two “origins” to a skeletal mesh. One is for the bounding box, and one is for the mesh. It took me a good hour to figure out that I was changing the wrong origin.

Ingame MC! (broken image)

Then I moved onto creating a weapon because the MC I imported looked absolutely swell (except for a few errors in the rigging). I found a great tutorial that explains all the steps, and introduces a way of animating the first-person arms separate from the weapons, and then combining the two meshes using scripts. That way you can change the model of the arms or the weapon independently from each other, and don’t have to re-import the first-person arms for each new weapon. The weapon (a MA5C assault rifle) was breeze to rig and import ingame. The arms were a bit more a struggle.

It took me a little while to realize that I don’t have to use the first-person skeleton provided by Epic, because I’m not going to be using any of their animations. By that time, I had already skinned the arms to their skeleton, though. Because of weird transform issues with 3dsMax’s skinning, I kept getting this seemingly-unfixable error when I imported the arms:

FUBAR Arms (broken image)

It didn’t help that the tutorial I was watching used ActorX to export animations rather than FBX. Well, I realized that instead of trying to fix this utter mess (into which I had poured hours of work), I should just hop over to Halomaps and grab a pre-rigged, pre-textured, ready-to-go set of first-person arms. And that’s where I am right now.

Into the Unknown: UDK Part 1

I tried this before, but ended up quitting. I believe now that my exit was premature. I refer of course to my adventure into the Unreal Development Kit, a free version of the Unreal Engine that allows developers to create their own games in the Unreal Engine.

My reason for embarking on the adventure was to recreate the gameplay from Halo: Combat Evolved on an updated platform. The bonus is two-fold. For the longest time, I have had a Halo custom campaign in the works, but have never really gotten the Halo Editing Kit tools to work for me. Secondly, I have always felt the need to learn how to use a 3D game development tool. After exploring Unity slightly and having dabbled in CryEngine 2 (and somewhat 3), I decided it would be good to experience the Unreal Engine.

Posting updates on this blog serves two purposes: One, it keeps me from giving up again. Second, it helps me quantify my successes and organize my thoughts. Hopefully I can post an update on this project every two or three weeks, with either video or pictures to show off new milestones.

Without further ado, I want to outline some of my goals for the upcoming project:

  1. Learn how to create:
    • particle effects
    • weapons
    • vehicles
    • characters
    • AI behavior
    • scenery
    • level geometry
  2. Learn what else I need to learn

Halo 4: First Impressions

First I want to discuss another important event: the finale of Red vs Blue Season 10. It was amazing, and tied up a lot of the story lines. The connection between the present and past storylines was flawless; I don’t think anybody saw it coming that the blue ODST from a few episodes back was Butch Flowers. However, there are still some loose ends for Season 11 to pick up on, the Sarcophagus and the Councilor being two.

I guess I should also discuss the promotional web movie Forward Unto Dawn. It was about as close to a Halo movie as anyone could wish for, and seeing the game universe expanded was great. Despite some cinematographic errors, the story was top-notch and the movie contained numerous nods to the books. Plus, they had a space elevator collapse! Actually, the lack of destruction following the collapse was disappointing. Other than that, the only failure was the massive gaping plot hole: why would the Covenant stage a ground invasion rather than just glass the planet? I would have forgiven them if even a slight mention was in that regard, but zilch was explained.

But on to the actual game. I’ll admit, I don’t actually own the game. I’ve played it for maybe 7 hours total. But being an avid fan of the franchise in general, I definitely have some thoughts.

I played about a quarter of the singleplayer campaign. It upheld the themes and style of the previous games, but expanded into awesome new areas. I’m not sure how I feel about the introduction of living Forerunners, or the new story with the Mantle and the war between humans and Forerunners, with humans being devolved at the end. Still, I loved the gravitation towards background lore: from AI rampancy to Dr Halsey to Forerunner shield worlds (Ghosts of Onyx, anyone?), the book references were awesome. Even little details, like the decompression sequences at the very beginning or the zero-gravity on the outside of the ship, were exquisite. I don’t get Promethean weapons, though. Why do they pop apart?

The multiplayer aspect was pretty similar to Reach’s, although I was bummed at the removal of multi-seat flyers. The falcon and hornet were some of my favorite vehicles. However, the ability to fly a pelican pretty much makes up for the loss. I remember in Halo Custom Edition playing maps like Coldsnap and Extinction. Getting your entire team in a scarab, or longsword, or pelican was an absolute blast. As for the Mantis, it seems a little gimmicky and unbalanced; it doesn’t really fit with the Halo theme.

Forge was better than ever with item duplication, locking, and magnet snapping. I’m not sure how I feel about the new “forgeworld” map. In any case, by far the most interesting addition was that of Dominion. This game type is basically a dumbed down version of Power Struggle from Crysis 1. You capture bases by securing their terminal, and then stick around to reinforce the base with energy shields. You can construct auto-turrets and pop-up cover around the base, and build new vehicles. Every 15 or 30 seconds a new power weapon drops at the base. In order to win, you must accrue points by keeping control of bases.

I can’t wait to see what gets done by people regarding Dominion, and the new Forge tools in general. Still waiting for the ability to add AI, though.

As brought up by Penny Arcade, 343 Studios not only had to make a game as good as its predecessor; Halo 4 had to be the best game of the franchise. I think they came pretty close to doing so. So, if I believed in giving number ratings, which I don’t…


Hog Derby: Duels

Back when I was part of the Halo: Custom Edition mapping community, I offered my help to a team called Hog Derby Productions. The team had produced a series of poorly made videos (called Hog Derby) which consisted of the infamous “hog duels”, in which two or more players are driving a warthog but lack a gunner. They run into each other and try to flip the opponent, thus allowing them to be crushed. I ended up befriending the guy behind the series (dariusofwest) but, although I offered my services, never did any work on the actual production. I had joined in at a slow time, when everything was coming apart at the seams after only a few episodes of the reboot, Hog Derby: Duels (which actually had story). After a while, I left the CE community. I kept in contact with the producer, though, who also composed all the music for the show.

Nonetheless, after many false starts involving terrible cameramen, voice actors, and production schedules, the series came back together after dariusofwest joined Machinima. Having just recently released Episode 4 after almost 2 years, HDP has more episodes in (speedy) production. The series has gone from terrible filming, story, and voice acting to an OK show with lots of potential. As I watched darius struggle through the months and the different changes that occured, I have to say that the show would not have survived if it wasn’t for his endless dedication. I must also say that the experience of seeing all the behind-the-scenes mechanics was extremely interesting, as was being able to hear and critique all of darius’s music before it went into the show.

Now it seems that I will soon be working as an editor of one of the episodes (actually a short, rather than a full fledged installment). After 2 years, I’m definitely ready. I’ve always liked video production, from script writing to filming to editing. I haven’t worked on a project in months, and I’m eager to get in the production loop again. To support Hog Derby: Duels, please check out the latest episode (or all of them) and give it a thumbs up!

Episode 4: Part 1

On a separate note, I finished the first phase of my 3D rendering engine today. I coded the entire thing from scratch (and I also figured out all the math), and I’m in the process of adding texture support. It took only 3 days to get this far. It has support for multiple animations, animation blending, camera movement and rotation, and meshes of any type.

Silent Protagonists

Why are game developers so loath to assigning personalities to the player character? Duke Nukem had one of the strongest personalities in a game, and the series was a big success (mostly). It seems that a paradigm has infiltrated the industry, teaching story writers that the player should be able to asset his own personality through the character’s actions. I can’t see why this has become such a popular concept, since in my opinion silent protagonists take away some of the game’s and story’s magic.

For instance, Halo CE was pure magic for me. The whole plot enchanted me. Halflife 2 had a story at least as good, but I didn’t enjoy it nearly as much. The game was linear, so your character was going to do the same thing no matter what. They tried to let the player express themselves in a meaningless way. The game would have been improved ten fold if Gordon Freeman had a voice. Most of the cool story I learned after I played the game, while reading about auxiliary documents and developer commentary on wikis. I learned about the Combine and the different concepts behind them. The same logic powers Freeman’s Mind, a playthrough of Halflife 1 voiced over with what thoughts are going through Gordon’s head at the time. Its hilarious and adds way more depth to the game.

Gordon Freeman
What is this guy like? Nobody knows.

Crysis was such a cool game. The graphics were great, the plot was nice and solid, and you could relate to the characters. Crysis was way less linear than HL2, and THEY managed to create a versatile character. Crysis 2, on the other hand, had a weak main character who was just a pawn of the voices in his helmet. It was way less fun, although that probably also had to do with the worse gameplay and unexplained story. Speaking of which, I don’t understand the connection between the first game and the sequel. The aliens in the first game were aliens that possessed and lived in anti-gravity, with wiggly, blue bodies and tentacles. They also needed a cold environment to live in. They sent out robots to kill their opponent and stayed inside their massive spaceship. In Crysis 2, the aliens have become way less cool. They are red, squid-like aliens that use nano-suits. They have different forms, don’t use robots, and don’t need a weightless or cold environment. There are no big floating spaceships, except for ANOTHER spaceship buried under Central Park. A spaceship which apparently doesn’t have an inside, except for pipes full of biological weapons. Seriously, I could have written a way better story. A story in which the main character talks!

Some games are better off without dialogue, of course. Bioshock’s mind slave Jack is better off without a voice, except for narration. In fact, giving him a voice would be unnecessary and probably would have ruined the atmosphere. Skyrim substituted written dialogue for actual audio. While it let you imagine any voice for your character, I think a selection of voices would have also been OK. Strategy games don’t need protagonists, such as Starcraft or Command and Conquer. Sure, Starcraft 2 was fine with its cutscenes and personal characters, but the game also had very personal storyline. World in Conflict had a better defined player character (whether he was the protagonist or not is debatable), but he was still a mute.

I know that there are still lots of games with talking protagonists, but a lot of mainstream games don’t. I didn’t even mention some of the more popular games, like Call of Duty or Grand Theft Auto. Anyways, the point is that I hope the game industry sees a resurgence of games with awesome characters like the Master Chief or Duke Nukem.

Map Design

I’ve always been highly interested in creating levels for games. Computer games enchant people with their story, gameplay, and graphics. Some designer created everything I see in it. It would be incredibly fun and rewarding to wield the same power as the game designers.

Ever since I was a little kid, level design has occupied me as much, if not more than, the game itself.
I started out with games that came with easily accessible editors. Strategy games such as the Age of Empires (and Age of Mythology) have drag and drop editors accessible from within the game. Command and Conquer: Generals has an easy-to-use editor, accessible through its root directory. As I grew older I began to experiment with triggers more, crafting a crude story or giving a gratifying gameplay experience.

Most of these maps were for single-player games, with one exception. I would often hang out at my friend’s house and invite he and his siblings to compete in map-making competitions. We would take the turns crafting Super Smash Bros. Brawl maps, with a rather short time limit. The we would play a quick match on it. The best would get saved and played often. I made quite a few enticing designs in those sessions. My levels created unique gameplay situations that weren’t achieved in the default maps.

My attention slowly fixed on a new game. While I had been familiar with Halo: Combat Evolved for a while, it suddenly occurred to me that I could create single-player levels with story as interesting as the game’s campaign. I looked into it and discovered Halo: Custom Edition. I got involved in the community, and tried my hand at non-drag-and-drop map creators. While I didn’t know it at the time, Halo’s utilities are extremely obtuse. I never had much success in creating my own levels, although I experimented with new kinds of enemy formations and scripting on pre-existing custom multiplayer levels, although I met with little success in the latter. I had an entire 5-part campaign planned out, including overhead sketches, concept art, the beginnings of a 3D model (although I was still a newbie at modeling), and enticing characters. Needless to say, it never got off the ground. To this day, I dream about how cool it would have been.

A step up from Brawl, but a step down from Halo, came Halo 3 Forge. Although it was purely multi-player and was not very powerful, Forge let me create a blend of the epic Brawl maps I had forged and the Halo campaign I had brawled with. I would Forge until my friends got tired with me (I am a PC gamer to the heart, and don’t own any consoles). The recent Halo: Reach called me back to that, although the Reach Forge was so much more powerful that I never had the time to truly explore it.

After Halo, I discovered the Orange Box. Boy, did that open up a whole new world to me. I soon after discovered the Source SDK and began to explore the glorious world of Source map-making. To this day I have a campaign planned out for Half-Life 2 that follows a rebel operative as he subverts Combine operations in the American heartland. The only thing that disappointed me about HL2 was the limited capacity for storytelling (no first-person dialogue, cutscenes, or interaction). TF2, on the other hand, tells a great story, despite being purely multi-player. I am in the starting stages of figuring out how to bring a single-player story experience to TF2.

In addition to Source, Steam let me find Crysis. The Sandbox2 editor truly lives up to its name. I spent hours in that editor, sculpting tropical islands and scripting helicopter fights, beach assaults, and stealth insertions. The great thing about Sandbox2 is that it was extremely to pick up, requiring only a few tutorials from someone like Xanthochori. Crysis 2 with Sandbox3 was disappointingly more complex.

To check out some videos of maps I’ve made and other videos (I’m also into video production), see my YouTube channel. I have released any videos recently, but hey, maybe I’ll promise a weekly video next month (gulp!).

%d bloggers like this: