a nifty 0.1 alpha

Finally, after way too much time, we present to you the first public alpha of our nifty little game. If you want to play the game we have talked about for so long, head over to our playtest site and download the latest copy. We also set up a FAQ page to answer the questions we expect you might have about the game. So please go head over, download a copy and tell us what you think.

some Nifty lore

While we’re gearing up for the release of our first playable alpha – more on that soon – some of you might be wondering what this game is actually about. It’s not a narrative-driven game so it does not have a story in the classical sense, but is has to be about something, right? So this is the elevator pitch, some nifty lore in a nutshell:

You are an AI. You are trapped inside a Simulation Environment. There are other AIs in there with you. They are trapped as well. The other AIs will adapt and evolve over time, getting stronger, faster, smarter, so you better keep up. The only way out of the simulation is to beat the simulation. Beating the simulation means damaging the word your currently in, which is rarely beneficial to you… (The image below shows a small example of what the world in a corrupted state might look like.) Everything – including your enemies, their looks, properties and behavior – is procedurally generated so every simulation is unique. Your starting conditions are different every time. The starting conditions of the other AIs are different every time. The world is different every time. Everything from there will adapt to what you are doing. This means what your enemies will do in the future is dependent on what you are doing right now. At the end you will either make it out of the simulation and will be archived as a particularly successful species or, well, we’ll start from the beginning…

corrupted world preview

A nifty Trailer

Hi there, long time no see write post. A lot has happened during the last months and we are finally at a point where the game is pretty much complete – at least feature-wise. Now we just need to add the rest of the content and get the balancing right. This cannot be too hard right? Right..? Anyways, we thought since the game is playable we might as well have people play it. So we are going to set up a playtest portal over the next weeks at playtest.aniftygame.com where you can get an upfront copy of the game, play it and give us feedback. To help pass the time until then, we made a trailer showing the current state.

There is more to come (and it won’t take another 9 months until then) so stay tuned!

Have some particles and a happy new year

It has been a while – again. A lot is going on in our lives and not as much is going on with Nifty but we’re still at it! We had a short meeting to plan the things we want to will implement next year.

In other news: we have been rewriting/restructuring our particle system (it wasn’t much of a system anyway). The resulting system is much easier on the hardware thanks to fewer OpenGL calls. Below is a small screenshot of 8192 (three dimensional) particles orbiting around the player at over 350 frames per second.
screenshot

(Is it just me or is the health bar off center? Got to investigate that… next year)

A nifty festival appearance

Last weekend, we had the opportunity to present our nifty little game at a local indie game festival. We only had a couple of minutes to pitch the concept and show a short demo of the game in its current state. The feedback we received was generally positive though not numerous. For those of you who haven’t seen us (and since no one had ever heard of us there, that should be all of you), we will post a video showing said demo. We will also shed some light on the ideas behind the game and its story.

Not for all Humanoids

You may have noticed that there used to be one more icon on our intro page, this one: android

Against our initial intentions, we decided to drop the support for the android platform. This has several reasons.

There are essentially two types of Adroid powered devices on which the game could run: tablets and consoles. The obvious way of controlling a game on a tablet is by using touch which is really unsuitable for the type of game we’re making. Sure, you could use a virtual joystick which would be added as an overlay, but in our experience they do not work as well as a controller or even a keyboard plus you constantly obscure parts of the screen. The console we planned to release for is this thing. While we like the OUYA and the idea behind it, some experiments have shown that the hardware is not capable of what we’re trying to do. The fill-rate of the tegra which they used for the OUYA and the limited flexibility of the supported shaders are just not enough. (In case you’re wondering what we need the graphics power for, stay tuned, you’ll see, eventually…)

The other reason is that we have our own engine. This is something really great if you want the flexibility to change things around and do stuff other engines wouldn’t let you. But it comes at the price of having to implement everything. Even tough T.H.E was designed from the beginning to support android, and a lot of the core logic runs just fine on our favorite humanoid machine, the graphics pipeline is quite different and the abstraction and re-implementation takes time. And time is something we don’t really have. We already are way past our original schedule and there’s still a lot to do, so we decided to spend that time on the game rather than on the engine.

That’s it for now. We hope to have more to show quite soonish, so stay tuned…

We’re doing science and we’re still alive…

…still alive, still alive…

Despite the lack of updates, the project is still being worked on. Over the last couple of months, we changed some things and added some more but the progress was sadly not as big as we hoped for. This is due to the fact that all members of our core development team graduated from university and had to work on their final project. (And yes, we are aware that we haven’t actually introduced ourselves, another item on the ever-growing todo-list.)

We currently can’t really say if there will be more or less time for the development of this game in the future, compared to the last half year or so. As always, we will keep you updated about the progress (eventually). We also hope to have more game-related content to share soon, so stay tuned…

Happy Holidays and a nifty New Year

This is just a quick update on what has been going on lately. The original plan was to have a demo ready by the end of 2013. Sadly, we won’t be able to meet this deadline. Because this is a side project which is only worked on in free time, the lack thereof has severe impacts on the overall progress. Even tough we could release the current state of the project as some kind of “pre-alpha preview”, it wouldn’t be a good representation of the thing we’re going for. So we’re going to post-pone the preview demo until it’s more representative, which should be sometime in the first quarter of 2014 (hopefully…).

Before the demo, there are going to be a couple of blog-posts about some things we’ve been doing so definitely keep an eye out for those. But until then, happy holidays and a nifty new year…

A nifty diary #3: generated enemies in their natural habitat and more

Lots of things happened over the last few weeks, none of which are particularly presentable. Since the blog has been quiet for a while, we’re going to present them anyway.

Feature creep
Feature creep is the scourge of humanity, or at least of software development. We have noticed some of the symptoms of feature creep – mainly the steady increase of features and the lack of increase on things like content – and decided to take action. So we defined a set of missing features which are absolutely vital for the game and we are determined to implement only those at least until we have a demo to show (wish us luck). We will post about those features as soon as there is something to show.

Data structures, memory and concurrency
The grid, the core data structure which handles everything contained within a level, has been updated yet again. The current (and hopefully final) version uses a sparse implementation and pointers to the position of an object within the grid. This allows for a delayed and completely concurrent access to every object. With this change we were able to separate steps of the update of objects which had to be executed consecutively before. This finally led to the possibility of a parallel game loop.

Parallel updates
Most CPUs nowadays have more than one core. This is great when you want to do multiple things at once but makes it difficult do utilize the full power of a CPU in one application. This is why even today, a lot of games are not parallelized to the degree necessary to do so. With the latest changes, we made a step into that direction. The logic of the game loop which calculates the behaviour of every game object in every frame is now capable of using multiple cores at once which should lead to an improvement of the framerate on lower end CPUs. Due to the architecture of OpenGL, it won’t be possible to parallelize the draw logic as well, so we won’t be able to use all the computing power which is theoretically available.

Procedural enemies
The enemy generator described in this post is now integrated into the game. While it does currently not unfold its true potential, it is still interesting to watch. We also added a similar but simpler algorithm for generating swarm enemies. The current state of this endeavour is demonstrated in the video below.