Newer Posts Older Posts

Spritz Saber

2014-10-29

 

Cryptography is the cornerstone for a safe and free internet. This comes in form of useful technologies, such as TLS, S/MIME, PGP and encryption standards such as AES. But it is important to have a simple fallback to remind powers that be that banning encryption is a futile task.

This used to be ensured by the nimble Cipher Saber, that use RC4. The primary feature of Cipher Saber and RC4 was, that you could basically memorize the algorithm. This meant that any attempt at banning encryption is easily circumvented, since all you need to reproduce the program is a text editor and a compiler. Unfortunately RC4 is considered to be at the brink of being broken and without any replacement this basic premise is lost.

But luckily this Monday (27. Oct. 2014) the Spritz stream cipher was published. It is a stream cipher that is loosely based on RC4 and is almost a perfect drop in replacement for RC4.

read more

Pivotal Tracker

2014-10-27

 

If you ever think "I should sit down and make a plan", you need to use Pivotal Tracker. It is not an agile management and planing tool, it is common project management sense distilled.

Enough of the big praising words, I really think that Pivotal Tracker is the most sensible tool you can use to plan and track your project's progress. It praises itself with being agile and you will find terms such as "stories", "velocity", "backlog" and "iteration", but in it's essence it just works, no matter what you think about agile.

Not quite kanban.

The interface is structured loosely on the kanban board concept. Although you can arrange the columns as you like, it comes with the above view. The stories "flow" right to left and rise to the top. This means that the most pressing item is on the top left, below the completed items.

read more

Procedural Terrain Material (Unreal Engine 4)

2014-08-23

 

You can read or watch many tutorials on how to texture a terrain using layer blends. Although that is a valid way to texture a terrain, I think that most of the work you put into texturing the terrain is redundant.

Take the classical grass, rock and sand terrain material. The flats always get the grass, the rock goes on the slopes and the sand goes on the beach. This would be something similar to this:

Grass on flats, rock on slopes and sand on beaches.

But if this rule holds up in your scene, why not encode it in the terrain shader?

read more

Template vs. Inheritance

2014-07-14

 

I was asked the following question:

Bjarne said "It's usually a mistake to express parametrization of a class and its associated functions with a type using inheritance. It's best done using templates..." but why?? what's wrong with using inheritance??

Oddly enough I never thought about the issue and used templates and inheritance purely on an intuitive level. But now I am forced formulate the difference, where each is applicable and where each falls down.

To show the difference I will use two examples that are clearly at home in their respective implementations.

The first is the well trodden shapes example:

The classical example if inheritance: shapes

The other is are multidimensional vector as implemented in glm:

The classical example if templates: vectors

What makes the use cases so different?

read more

From Jekyll to Gulp.js

2014-06-09

 

Note: I overhauled the generation process to be simple and more streamlined. This post is not wrong, it is just sligtly inefficent. In addition to this post you may want to read Overhaul of Page Generation

For quite a long time this site was powered by the static site generator jekyll. I came into contact with Jekyll through the github pages, that employ Jekyll and immediately fell in love with the idea of generating static HTML pages. I have always found it superfluous to operate a simple and mostly static blog using a fat web stack.

Although Jekyll does it's work quite nice it was not the optimal solution for me and when I stumbled over gulp.js, I know i had found a fitting replacement. After some starting difficulties I migrated this page to using gulp.js.

read more

Open Letter To Epic

2014-04-30

 

My Dear Beloved Epic,

when I found out that you released the Unreal Engine 4 to the public at such friendly terms I jumped on it. I have always regarded the Unreal Engine as being one of the best, in many cases even the best game engine available. When I first started the engine I was really impressed. The ease of use is astounding; the ease at which assets can be integrated and even created in the engine is unrivalled. The though and engineering put into this engine is remarkable.

But working basically every day for the last three weeks I have come to the conclusion, the engine, although very promising, is still severely lacking in polish. The engine and editor is far from broken, but a few dints in the perfectly wrong places make working with the Unreal Engine 4 frustrating and unpleasant.

read more

Axis Double Tap (Unreal Engine 4)

2014-04-13

 

As I am working on implementing Unreal Tournament 2004 style movement for my little UT2014 challenge, I found a tricky bit to implement: capturing double tap on axis inputs.

The template projects in the Unreal Engine 4 use axis inputs for movement. This is done so that you can use a gamepad's analogue stick for movement. The tricky bit, in comparison to input actions, is that the axis fires each frame and you need to read out the value. The execution needs to trigger on the value rising over a threshold and not the execution tick.

How to hookup the Axis Double Tap selector.

This is about how you would integrate the AxisDoubleTap. Since we want to preserve "normal" movement the sequence splits out to the AddMovementInput on the one side and the AxisDoubleTap selector on the other. The value AxisThreshold (0.75) and DogeTimeout (0.4) are variables that are exposed on the Character, so that they can easily be tweaked later on.

As you can see, I have not yet implemented the doge, so for now we will just print "Doge Left" and "Doge Right".

read more

A Critique of the Entity Component Model

2014-03-27

 

The entity component model is all the rave for the last decade. But if you look at the design it opens more issues than it solves.

Broadly speaking the entity component model can be summarized as the following: An entity is composed of components who each serve a unique purpose. The entity does not contain any logic of it's own but is empowered bay said components.

Overviews are boring.

But what does the entity component model try to solve?

read more

Unreal Engine 4: C++ vs. Blueprints

2014-03-25

 

For my UT2014 Challenge I had the first hard decision to make:

Should I use C++ or Blueprints to drive the game logic?

Disclaimer: In case you stumble over this and try to make a decision to either use C++ or Blueprints for your project, keep in mind that I only had a good hard look at the issue for a few hours.

Looking at the C++ code for the FPS sample, it becomes quite clear that you find all the bits that used to be in U-Script in UE2 and UE3. You have the Pawn, Character, Controller, GameMode and Game classes, just this time in C++. So if you know your way around the older version of the engine you are quickly at home here.

read more

UT2014 Challenge

2014-03-21

 

With the public release of the Unreal 4 Engine and 10 years since the last good Unreal Tournament, I propose a challenge:

Build a classic arena shooter reminiscent of Unteal Turnament 2004.

Implement Death Match game mode with one map, one weapon and one character. Bonus points for implementing the exact UT2004 movement.

Choose your own unique theme and look and as far as possible integrate your own assets.

You should build a complete game, that is a packaged executable with menus and all the expected usability. It should look and feel like a full game, albeit with limited level set and gameplay. Bonus points for building an options screen Total Biscuit would be proud of.

You have time until the end of June.

With the release of the Unreal Engine 4 and their tally awesome licensing terms there is no reason why not try out this engine. (I am only sad that they did not bring it out earlier, since I invested much time in building my own.)

If you want to participate, let me know: @rioki1337 or [email protected]

read more

Newer Posts Older Posts