Showing posts with label udk. Show all posts
Showing posts with label udk. Show all posts

2015/02/27

Unreal 4!

Hi!

This month is a little crowded.

We are happy to say that we managed to get hold of Unreal Engine 4 for a while (thank you, GitHub!!). So these days we are trying out the engine, discovering the differences, etc. There are lots of built-in stuff in UE4 that we would have needed in the UDK. So we're looking at the pros and cons, and considering migrating our project. We're not sure yet though. I have yet to check out the blueprint system in-depth. (By the way, scripting is so much quicker with the graphical interface and in-engine compiler. No more restarting while adjusting a variable. Yay!)

Here are some pictures for comparison! Every texture and mesh is the same as they were used in the UDK. Only minor changes at most.

Left side - UDK, right side - UE4





---





Super detailed bump maps! Yay!



Geril created this "building" in about 15 minutes.







Real-time reflections make everyone look like T-1000s in liquid metal form

If we do decide to migrate the project, we'll make some tutorials.

I'm sorry to say that there may not be a comic this month at all. Geril is hard at work at his full-time job, and in UE4 too, and I (Lussy) am traveling in South Korea at the moment. I hope you can understand.

2015/01/24

Movement test!

Hello!

Here's a video for you:


Just a quick update on how we're doing. As you can see, we're experimenting with different controls: a fixed, side-scrolling camera with 3D movement. It works out pretty well. The only awkward thing about it is how sometimes you can't determine where you are in the 3rd dimension. We're planning to fix this with a small circle of shadow below the player, and a more dynamic camera.

P.S.: Subwoofer required for full experience

2015/01/10

Tutorial: Introduction to Unrealscript

Hi! This is Lussy.

It's been a while since we posted a tutorial. It's time for another one.

I’ll try my best to help you get started with Unrealscript. Don’t worry if you know nothing about scripting: I don’t know anything about other programming languages either! High five!

As a first step, I recommend downloading Notepad++ (here). It’s a simple, easy-to-use software with lots of functions. You’re going to use this to write your scripts. I also suggest you download UnCodeX (here). It will help you immensely. With it, you can browse all the classes in your script folders (a class is a file of script. Classes can be found here: UDK/Development/Src). You need to configure it first, though.
These two software are all I use for scripting (besides the Internet). Oh, and of course, the UDK, but I assume you already downloaded and installed that. Let’s get started then.

If you plan on making a completely custom game, you need to start with a new gametype. I’ll show you how you can create one.
First, you need to decide what kind of game you want. If you want a shooter very similar to Unreal Tournament 3, you can base your scripts off of the UTGame gametype. If you want something entirely different, I suggest you start from scratch: SimpleGame. If you want something in-between: UDKGame. It has some useful functions, but it isn’t as advanced as UTGame.
It is important that you don’t base your game on something you’ll never use: you’ll only make it harder for yourself. The biggest challenge for me is not writing scripts, but understanding all the scripts that already exist. Of course this might not be the case for you. If you’re not sure, just experiment, try out the gametypes on a sample map and decide which is the closest to the game you want to create. You should only choose one, if you try to mix and match, it will lead to disaster (not the good kind. What I mean is that it will not work.). Once you’re done:

Create a new folder for your scripts. Name it something you’ll recognize. Recommended: Make up a short ‘identifier’ for your classes. In my case, this is OLP. All the files you create should have these letters in the front, so you can find them and refer to them easier. I’ll use TG for this tutorial (TutorialGame). Create another folder inside the one you just created and name it "Classes". Create the following empty files inside your "Classes" folder (you can simply open a new file in Notepad++ and save them inside your folder by the name „TG … .uc”, it will take care of the extension):

-TGGame.uc
-TGPlayerPawn.uc
-TGPlayerController.uc


These are the only ones you need for now. The Game class kind of holds your whole gametype together and defines the rules. The PlayerPawn class defines functionality of your pawn: your player(character). The PlayerController class contains (mostly) the rules by which you can move your player character.

Next, you’ll need to have them extend from the gametype you chose. You can do this by editing the previously created files, like so:

TGGame:
class TGGame extends SimpleGame;

TGPlayerPawn:
class TGPlayerPawn extends Pawn;

TGPlayerController:
class TGPlayerController extends PlayerController;


This makes them extend SimpleGame. It's important to note that the class name inside the file must match the file's name.


For UDKGame:


TGGame:
class TGGame extends UDKGame;

TGPlayerPawn:
class TGPlayerPawn extends UDKPawn;

TGPlayerController:
class TGPlayerController extends UDKPlayerController;


For UTGame:


TGGame:
class TGGame extends UTGame;

TGPlayerPawn:
class TGPlayerPawn extends UTPawn;

TGPlayerController:
class TGPlayerController extends UTPlayerController;

   

Now that you’re done, you need to tell the engine to read your scripts when compiling (Compiling = the compiler reads your scripts and converts them into „machine code”). You need to insert a line into the „DefaultEngine” ini file. You can find it here: UDK/UDKGame/Config/DefaultEngine.ini


Find this line: "[UnrealEd.EditorEngine]". This is the part that shows the compiler which scripts to compile. Insert the line "+EditPackages=TutorialGame" after the other ones. Save and quit. 


You’re almost done: Open Unreal Frontend. ( UDK/Binaries/UnrealFrontend.exe ). 


You will find the compile and full recompile buttons there. I recommend you do a full recompile this time, just in case. You won’t need to do this every time, the compiler detects if a script folder has modified files and it will only compile that folder. (If you get random errors or UDK decides to crash randomly or not even start up, do a full recompile. This will inevitably happen sooner or later.)
So, hit full recompile. It will take a few seconds to finish. After it is finished, you can check the log to make sure your files were found and compiled. 


This was an easy step. It will get harder though. The compiler log is the place where all the errors will be displayed. Like this:


If you get an error, the compiler won’t compile further until you fix the error. Warnings won’t stop the process, but you should still fix those, too.

So now your gametype is ready. You can try it out, but at the moment, it won’t differ from the gametype you extended from. This is the tricky part of Unrealscript: the classes are all part of a tree. They all start from Object.uc. This structure, the extending, lets you use all the functionalities of the classes before yours, without having to define them again and making a huge mess. This also means that you’re going to have to know the content of the classes before yours to use them effectively. I suggest you take a tour in UnCodeX. You’ll get an idea of where everything is.

I should mention that scripting is a very tedious process (personal experience), and you will feel like giving up, especially if you never did anything like this before. You need a lot of patience and practice to do well. I stayed up so many nights, fixing errors and glitches and they all made me furious. You just have to remember your goal (like in my case - if I don't do it, nobody will).

I hope this was helpful to you. I plan on making other tutorials as well that will help you actually modify your gametype. Until next time!


If you want to see our other news, check our Facebook and DeviantArt!

2014/11/30

Story time!

Hi! We're going to share some information about the game's world. It's going to be a bit technical so bear with us. The next story post will be focused on the actual story and the characters.
So... here we go.

The story takes place on Koronite, a world made up of irons. Along with this iron based world there are other kinds of matters on the surface which make life possible. Water is rare to find, clean water even more so as the seas contain lots of iron mixed in with mercury.

Magnetism is what makes the continents, mountains, air and water move. The planet has such a high voltage that it could shatter on its own, but the energy is contained by resistors (gigantic natural poles).


The atmosphere is slowly eating away the hills and mountains by oxidising them. Millions of undiscovered minerals lie hidden deep inside the planet’s inner layers among with organic living irons.

The reason why life is possible in this world is because of the plants as many of them are able to extract iron from the air as well as other sources and incorporate them. They then give off the materials they don’t need -  the ones that are needed for humans to live.


The life forms here are either based on iron or have evolved to survive in this environment. The people living on Koronite essentially adapted to the planet, their bodies able to process some of the iron. As such, they are heavier and sturdier but they regenerate less and more slowly. Their fur is strong but prone to rust if it’s not taken care of regularly. Breaking one of their bones may take tonnes of force but once broken, it stays that way. They can also have parasite-like irons consuming their bodies, or living with them in symbiosis. 

The planet tries to get rid of outsiders on a daily basis, these are the more recent inhabitants who haven't evolved to process iron, yet they are determined in surviving at any cost.

The surface is varied. In some places the ground is hot and sandy, elsewhere it is cold with crumbled metal. There are endless oceans that look like large mirrors and also seemingly never-ending are the chasms, floating mountains made of dust and slowly moving damp cubes of metal.


While life is everywhere in its own stubborn form, the inhabitants are fighting an endless war against nature using steam and sparks. After centuries they can finally say the surface is theirs. The problem is, the surface is not the only layer the world has.

Before conquering the surface life only existed deep below it. The creatures were primitive and less able to adapt to changes. Their large bodies remained as caves between the layers of the planet. As it moved and changed, the surface became more stable than the other layers. Water carved long caverns that became the home of simple and more complex creatures alike. So while the surface keeps changing, under it, chaos is the only natural order.

The average inhabitant stays far away from the deeper levels - they have enough trouble on the surface already - yet there are people who use the caves to remain hidden, to do things under everyone’s feet. They have to fight other creatures or nature itself for these places, so it isn’t very common.


About one and a half centuries ago, it became forbidden in most regions to work, develop and transport under the surface. Only mining could be continued and even that was kept under close supervision. Recently there have been revolts across the world. Leaders came and went, laws faded and became rewritten. Nations changed names and conquered new lands.


These new, neutral areas of land - or as their inhabitants called them, “free terrains” - were captured by hired mercenaries. Without a flag or a name the conquered lands could become inhabited to form a new nation of their own.

In this unstable world, to survive, beggars can't be choosers.

Our protagonists’ lives start out from the village in the valley of Maron.
They separate for a while after but their past and goals ultimately causes their paths to collide soon enough.


names not final

2014/11/01

Post-Halloween post!

Happy Halloween!

Here's a video that we just made (still warm). Prepare for spookiness!
You can see a brand new map and lots of new foliage and effects. We realised we focused solely on gameplay mechanics, so the environments.. kinda sucked. So we were working on creating foliage. And we're showing them off right now. Enjoy!



Here are some bonus pics of the map in daylight. You can see the foliage better this way.





P.S.:

It took us about 8 hours to export the frames from UDK, then convert them into a video, then convert that video, then edit it, and then export the edited video (the first edited export took 3 hours. Turned out it was 4:3, small and disfigured. The second export took about half an hour. It was also edited twice.) And THEN it turns out that the quality is faaar worse than the original exported images. Comparison:


So if we ever have the patience to try video editing again, maybe we'll fix it. But right now, we just want to take a break from this weeklong, nonstop video preparing and editing.

P.P.S.: At least the vid is 60FPS though.

2014/10/16

Morph targets!

Hi! It’s Lussy.

We’ve been messing around with the facial morph targets of the bobcat, and we tested how well they could be converted into the UDK. So Geril made a short video of the bobcat lip-syncing to a song that, in his opinion, best suits his (yet non-existent) voice. It is a very basic test, so there is little to no animation playing on the body. The focus is on the face. First take a look at the one captured in Blender:



And this one was captured inside the UDK:



Here's another comparison:


 


As you can see, the UDK one is a lot weaker than the Blender one. We're working on changing that.

See you next time!

2014/09/30

Concept art!

Hi! It's Lussy.

We've been working on the third player character this month (even though we are very busy with other stuff as well).  The third player character is a female mouse, but her model isn't ready yet, so I'll save the details for later. I'm going to share some of Geril's concept art of her, and I'll also post some drawings of the bobcat. In the meantime, I've been working on gameplay mechanics and some other things. I hope I'll be able to share some of them soon.

Enjoy the drawings!




(the scanner didn't want to cooperate. sorry for the quality)

2014/07/31

Swordfighting!

Hi, Lussy here.

We’re progressing with the game, even if it seems like we’re just lazing around not doing anything. I’m working on weapon scripts at the moment, while Geril is creating the 3rd player character’s model and working on Eslie and the bobcat too. The bobcat has lots of placeholder combat animations, so I started working on a more serious combat system (until now it was very simple). I’m going to talk about these scripts now, in hope of either helping out someone, or someone telling me why they suck. Remember, I’m not an experienced scripter, I just get an idea and then try to make it work. So with that said, let’s begin.

The current combat system consists of 3 possible combat animations being played. The first one simply plays when you push the attack button, and the second and third ones appear if you successfully maintain a combo. Until now, all this was simply based on timers in the script, but right now I’m experimenting with AnimNotifies. It works like this:

-Player presses the attack button. The combat animation starts.

-When the animation gets to the point where it should start dealing damage, an animnotify calls the function for tracing the swing, and when it shouldn’t deal any more damage, another animnotify stops the tracing process. This way if the animation has a part where the sword is held stationery, it won't hurt anyone.

-There are also two animnotifies for doing combos. They mark the two points in between which the player can push the attack button to continue the combo.

-The last animnotify marks where the second animation should play, if the player wants to continue the attacking combo. If there wasn’t any input, the current animation simply finishes and the player gets back to the idle state.


I needed to do lots of planning to make this work, and I’m still not sure if it’s going to stay (there are lots and lots of ways it can make the weapon stop working altogether, as of now.). If any of you know any better, please don’t hesitate to comment.

Players can have two weapons with them (and some more in their bags, which can only be accessed while out of combat), though only one can be equipped at a time, the other one will be sheathed. Right now, only the sword has the combo system mentioned before, the axe is still very primitive, but functional. Obviously, the axe will be slower but stronger.


The sword only has these really slow animations for debugging purposes. It will be a quick weapon in the final game, with great mobility.

Planned combat speed

That's about it, for now. See you next time!

2014/06/27

Some plans

Hi!

A lot of you (..the few people who sometimes read this blog) don't understand what the game is going to be like. So we'd like to make this clear: we're making a sidescrolling cooperative game in which you explore huge dungeons in groups of 4 or less, fight monsters and enemies and do quests. We'll leave the rest for later. For now, here are some of our most recent plans and ideas:


(don't tell anyone! ;) )

2014/04/23

Maps and control

Hi!

We're constantly working on the game's controls, and also on a map so that we can test the controls. We drew a sketch for a map structure, and we already made it functional in the UDK. So, here you go: enjoy the sight of the player character jumping around in a sketch, in a textbook, within a wonderful, low-FPS gif. If it loads.


(Next time the quality's going to be better, I promise.)

Apart from the sketch, we made another simple map, without a real structure, to see how the environment would work with the control mechanics. The design is very basic. We only have a few world objects, that's why it doesn't have any detail and looks kind of boring. We'll be working on those later.

Here are some pictures of the map:









2014/03/23

Shapekey Test

We've been planning to post info about the gameplay for a long time now, but we'd rather not discuss it just yet. Instead, we're going to show some interesting stuff.

One of the playable characters in the game is going to be Eslie. I'm going to write about her technical properties today but her story and personality will be covered in another post.

Her lip-syncing is kind of difficult to create and adjust with her being part wolf. Morph targets - or shape keys - deform her base mesh into a given position (for example, her mouth making different sounds). It can be adjusted, how much (a gaping mouth-morph target can be adjusted to become a slightly-open-mouth morph target by changing the values) and when (they are made into keyframes) the mesh deforms. With some effort, these morph targets can be adjusted so Eslie can (almost) perfectly lipsync any given speech.

A demonstration of this:



I (Geril) used a free software called Papagayo that creates lip-sync using sound and text. It's not very accurate, and it doesn't adjust the jaw movement unfortunately, so there's still a lot of adjustments to make after it finishes. It's better than creating it all from scratch, though.

The importing didn't go very well, but I managed to put it all together in Blender ver. 2.63. I also added some very basic facial mimicry to see how it would look.

And the character can now sing. Not in perfect sync, of course, and without any animation on her body... in T-pose. But it's working. (Makes a great imitation of the decapitated robot in the first Alien movie.)

2014/01/01

Happy New Year!

We wanted to post a drawing this time, but we are working on the first gameplay video, so we'll just show you a screenshot of the level as it is right now.

2013/12/10

Fennec fox

Hello, it's Lussy.

In this post, I'll introduce one of our more important characters, the fennec fox. Designing and creating her is mostly my job.

The fennec fox is a merchant who has a shop. She's about 30-40 years old, concentrates mostly on business and money, and the thing she's most fond of is her gun. She will occasionally hire fox, and in some parts of the game, she'll act as fox's sidekick, occasionally helping him out, but mostly just doing her own thing.



Her technical specifications will be the same as fox's: a regular and a cinematic model.


Thanks for reading, have a nice day!
It is still undecided, but she might be controllable in the game at some point.