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/02/07

Comic No. 2!

Hi!

Here's the second comic:



We know it's late, sorry.. Geril got a full-time job, we had a lot to do, and little time. But don't worry, we'll keep up the monthly comics. We really hope we'll be able to finish the next one in time.

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/12/24

Introducing: Comics!

Hi!

We've prepared a little surprise for you all. Here you go:


We're going to continue this comic series throughout the next year. As you can see, this is our first time making a comic, so you can expect us to get better with time. I think it will be interesting to see the progress we make with each strip.
The comic is mostly Geril's work, while I (Lussy) helped out a little with the background and lighting, and I proofread and translated the original text as well.

We wish you a Merry Christmas and Happy Holidays!

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.