Pages

Saturday, January 22, 2011

Kismet vs UnrealScript



As I've mentioned in one of the previous posts Unreal Engine has this visual scripting language called Kismet. It's pretty powerful and simple at the same time. I really loved using it while making tests of our upcoming game. So far I surprisingly mostly had difficulties with the Content Browser and the Level Editor itself, but never with Kismet... Working with is a real fun!

But one question always bothered me... Will I have to code? Where is the limit of Kismet's power? When will I have to give up visual scripting to actual coding?





I actually can't really bring an example of a situation where one would use Unreal Script, just because I'm still not that good at UDK. (I'm good at studying software on my own, but not THAT good) BUT! I did a little research and have a few answers, but before that let me tell u a few words about the Unreal Script itself.




Unreal Script is a powerful programming language dedicated especially for the game engine and working with 3D graphics interactivity. It was on purpose designed with the same syntax as C++. And it's good, just because C++ is the most popular programming language in the world and practically anyone who at least was having fun coding late nights, knows how it works. Unreal Script has special functions for all the things u might need while programming a game interaction. Basically that's the point of an engine, duh.

But at the same time u can do most of programming an interaction with player with Kismet, so why code? Well of course there are people who will feel more comfortable with a code editor, then with moving nodes and connecting with some arrows. But it's just that UDK is dedicated to make FPS games. Of course you can easily create games of other genre using it and still not writing a line of code! For example on UDK's official web-site you'll find free video tutorials of creating a top-down game using only Kismet Editor. And it works fine!

The thing is that changing game-play is mostly a hack. For example creating a character for 3rd person shooter game is actually creating a controllable enemy character with a camera linked to him. While the method works fine for games of small scale, it might be more reasonable to make the changes on a deeper level if u make something big.

Using both of the tools is the perfect combination. Kismet saves a lot of time, Unreal Script gives you customization freedom and better control. (if you know what you're doing) Using this workflow =, a programmer can independently add some improvements with UnrealScript to Kismet for the very project a studio works on. Meanwhile a level designer will use the custom add-ons to do his job. Everybody's happy, everything works perfect!

But for now I guess we'll go with the Kismet hacks to create our first game. iOS games mostly aren't huge, so I suppose we'll manage to get away with the great, but limited, power of Kismet.

Best wishes,
Alfred

6 comments:

  1. thanks! this was a great help!

    ReplyDelete
  2. Yes indeed!

    I have made an elevator with kismet, which is still quit tricky at the beginning.
    We use kismet now by a level design course at our game design study.

    ReplyDelete
  3. Thats good i also use kismet and made a third person free roaming gta type game within kismet

    ReplyDelete
  4. Thats really Helpfull, But is it possible to create Multiplayer game using kismet?? Or I'll have to use unreal script for replication & networking????

    ReplyDelete
  5. update this article, you said your still learning but 4 years should be enough to update and nail down this article please?

    ReplyDelete
  6. The shrimp pasta is loaded with prawns Spartagen xt and the pasta is cooked al dent. The brushstroke is the best we have ever had! The Friday night clam chowder minestrone option is creamy, buttery, and incredibly generous with clams. Portions are large. The chicken organic on the menu really is a full half of a chicken. For more ==== >>>>> http://www.healthcaresups.com/spartagen-xt-exposed/

    ReplyDelete