Always looking to improve the non-photorealistic rendering look of Gnoblins, here are two images showing off different rendering approaches, including two new cel shader. Currently the warp approach is in the game.
Is it a RTS game, or RPG or dungeon cralwer , shooter ? In its heart it is a dungeon crawler in 3d, a roguelike, with RPG elements. But there are some tweaks. The most important one is, that you are not alone. You can build up a small community of gnoblins, which introduces elements of a RTS game. And no, it is not a shooter.
So, you are running around with an army of gnoblins ? No, the gnoblins live in your home dungeon. They work for you, but the want payment and they demand some level of comfort. The comfort level is represented by the reputation of your dungeon.
So, no gnoblins will follow you, you are running around in the dungeons alone ? You can take a single gnoblin with you as companion.
Do you only play in a single dungeon ? How is the game structured ? You play only in dungeons, but there are several of them. Each dungeon consists of several levels and a certain setting.
Why do I need this gnoblins ? There's no town, there're no merchants. The gnoblins are the only one who are willing to help you. The most important aspect is the crafting. You find equipment, but with the help of the gnoblins you will be able to craft better equipment, potions etc.
Can I only build caves in my home dungeon ? No, later in the game you will have the option to change the appearance of your dungeon, e.g. in a more castle like setting.
Are gnoblin just an other word for goblin ? No, gnoblin describes a fanatsy race of its own. There are goblins in the game too.
Well, what are gnoblins then ? Gnoblins are a mix between gnomes and goblins. They are not as aggressive and dumb as goblins, nor are the as skilled and intelligent as gnomes.
What is perma-death ? Perma-death is a game feature, that when your character dies, you will no longer be able to continue playing this character. This is tightly coupled with the save game. The game automatically saves the game state, but you don't have the option to save/load mulitple states of the game.
So, one unlucky hit by a monster and it is game over ? Not at once. The game features several difficulty levels. In most modes you will have several lives. If you die, you will respawn until you run out of lives. In easy mode your lives will be reseted at certain stages of the game, in hard mode you will have a set number of lifes for the complete game and in rogue-like mode you will have only a single life.
Do you really have perma-death in, and that in the year 2013, why ? Yes, once your character finally dies, it is game over. The reason is quite simple, you design and play a game with perma-death in a really different way as a game without this feature.
What art style is it ? It is a NPR style. NPR stands for non-photorealistic rendering. It is not a cell-shader or toon shader, but it uses outlines and handpainted textures. The detail level of textures,characters and environemnt is low to support this style.
Is this placeholder art ? Emm... no, sorry. The qualtiy of the art might improve over time, but expect that the art style will not change dramatically.
The art style is ok, but the outlines give it such a toon look, can you please remove them ? You can turn them off in the options.
What is the current state of the game ? The game is in the alpha stage. An demo of the game will be/is released in Februrary 2013.
What is the difference between alpha and beta stage ? A game in alpha stage is not feature complete, content is missing, have more bugs, the art is not as polished as it should be etc. A game in beta stage should be feature complete, but you still need to test and tweak the content and gameplay.
What is your target price tag ? In is not decided at the moment, but I think that the final game will most likely settles down in the teens.
What about early access ? We evaluate the possiblitly to release it as alpha funding download on desura. You can then get the game and ongoing updates for a lower price tag.
Will there be a kickstarter campaign ? Kickstarter is currently not planned.
Are these really frequently asked questions or have you invented them all ? Not all, but most :-)
With windows 8 my willingness to try out linux has been tripled over night. Is windows really that much better than linux any longer ? I bought a new laptop and set a new pre-installed windows OS aside to give linux (ubuntu) a chance. Though I will not turn my back on windows completely (at least I'm quite happy with visual studio), it could be enough to wait until windows 9 is released, hopeful setting the focus back on a desktop OS again.
When it runs good, very good, I might think about testing out a port of my game to linux...
Speaking of Gnoblins, I plan to release the first public alpha version at the end of this month, so stay tuned. Further on I'm currently in artist mode again, trying my coder hands on some programmer art, here's the current wip of my new model , the elder.
Well, after struggling with environment/reflection map artifacts for some time now, I have found a solution. At least I'm quite happy with the results in my game.
The issue with environment maps is, that you need more or less exact probes of the surrounding in dark areas, which is quite difficult in my game due to its dynamic nature. Env-maps simulate the reflection of the surrounding, similar to the specular highlights of close light sources. The problem occurs when the environment is dark, while the env-map displays a lit environment and acts as a light source (especially when using HDR), in this case the env-map immediately catch your eyes.
You can take a look at the screenshot. On the left side the environment map on the test sphere and the bands of the barrels is clearly visible. My new approach is displayed at the right side, where it looks similar when the environment is lit and is more or less turned off when the environment is dark.
I'm using a deferred render engine, therefor I blend the environment only in when it is close to a light source. Additionally I modify the factor by the angle between the light source and surface normal to dim the effect on unlit surfaces.float normal_factor = dot(light_direction, surface_normal) * 0.5 + 0.5;float distance_factor = smoothstep(max_light_radius,min_light_radius, distance(light_position, pixel_position));final_light += env_color.rgb * normal_factor * distance_factor;
I love procedural content generation, but I have to admit, that it is not as powerful as I once hoped. Procedural generation in games is quite old reaching back to the days of elite and rogue-like game. Today, atleast two decades later, processing power has increased incredible, but what about procedural generated content ?
When I was a child, I got the idea to write a tool to generate 16x16 , 4 color sprites by randomly generating pixel heaps, reviewing and rejecting sprites manually, which did not look good. The idea is basicly a procedural content generation tool, thought doing some basic math, it was not a very promising idea.
But it is a good comparision of the situation of procedural generation. Back then I would have seen images in randomly generated pixel heaps, much like your brain is able to see figures in clouds. But today we no longer have 16x16, 4 color sprites, we have artistically crafted, huge paintings. Even realistic rendering is really stylized, utilizing many tricks to communicate some important emotions and messages in just every possible detail, and here we are at the point where procedural content breaks.
You can compare it with reading a book and watching a movie. While reading a book you use your imagination to build a living world from some fix points, whereas while watching a movie you are confronted with a given vision, not really able to bring in your own imagination. Now think about something in between book and movie. No idea, me too, I can't see how it should really work, and I'm not seeing how real procedural content should work in a modern game without abstracting the visualisation.
I have experimented with procedural level generation for more than 3 or 4 years in my game now. The major issue was, that it feels, well generated. I think, that people who play an abstract game (rogue-like or minecraft) stepped already over the suspend-of-disbelieve threshold, therefore accepting to live in a procedural world. But removing the abstraction puts the pattern of generated content in the foreground which results in breaking the suspend-of-disbelieve for many people. Much like the uncanny valley, we have the situation that the improvement of a single aspect (visual) change the awareness of the audience, suddenly seeing flaws in details (generated vs design content) which were not previously an issue.
So, I'm the only one having this trouble ? Besides terrain generation, what game should have procedural generated content and the options and budget to archieve it ? At least diablo 3 should have and indeed they have kind of procedural content in a huge, painterly world. But taking a closer look, you will see that they are only really plugging together template created by some artists, which must not be bad, but which is not really what I would have expected, or hoped for. But I'm sure that the people over at blizzard looked for a way to maximize the content generation while keeping an artistically and lovely art style and environment.
Procedural content, much like art, must be consistent with the rest of your game to work properly and the current state of procedural content generation was not able to keep up with the pace of visual content creation making it really hard to incoperate it in a modern (non-abstract) game.
Therefore my final thought is, that you should consider to utilize the human brain to make sense behind procedural, though abstract, content, instead of making procedures which are able to simulate the human brain to create artistically content. The first worked so far, the latter not.
Some random thoughts about the future of the game industry and where it will go in the future. The truth is, I don't know, nobody knows, but I fear that the current game industry heading towards a very large bubble, which might eventuelly burst.
There are many reasons, one is for sure, that the industry invest incredible amounts of money in top AAA games, but on the other hand it is often heard of, that many games don't break the even. We talk about normal games which are so expensive, that they need atleast 1-2 mio. sold copies to break even.
The result is logical: don't change a running system (aka cash cow), so make sequel XXIII instead and polish it like hell.
All who now think , that this is the day of indie need to consider, that we are talking about a spoiled generation of gamers. They expect to get AAA visuals,story and gameplay for free, so I fear that indies will have a very hard time too.
What about MMORPGs, the virtual grail of making endless money ? Well, how many MMORPG developers trying to archieve the sucess of WoW, but eventually herding into F2P seeing no other option to survive. The only really working concept seems to be Guild Wars, instead of counting on a subscription system, they counted on only selling the game once (+ add ons) and take the money to keep up a persistence world for some time.This resulted in a quite clever client-server architecture and a clever business model.
The game industry is still young, yet it already had a crash, maybe the bubble is ready to burst again, maybe it is even necessary, who knows.
I'm curious if the next generation of consoles will take off. Current gen games are already looking amazing, to top this you need really big budgets and the major titles will for sure be amazing, but what about the rest. If a studio can't compete with this budgets, it will need to tone down the game it develops, but toning down means that it could look although good on older hardware, or even tablets ?
Both, blizzard and valve, two really great video game studios, heading away from hi-demand hardware, smaller studios follow (e.g. torchlight) with success. There will be not many studios left over which are able to create games, which are really not feasible on the current gen consoles.
The trouble of the last console generation (to go DVD or not to go, harddisk) were tiny compared to the really complex situation now (consoles vs tablets, casual vs core, publisher vs kickstarter, F2P vs subscription, DRM vs free, retail vs digital distribution, PC vs cloud gaming). The budget of gamers is limited, especially in time of a financal crisis, but there are just too many parties which need a lot of money to survive, therefore someone needs to fall by the wayside, hopefully not the whole game industry.
I'm in need of taking a little break from coding, so there is nothing better as doing some programmer art instead. Trying my best at a new creature for my game, the ratman warrior thingy. Here's the first model attempt:
And a turntable :
Please feel free to comment and critique, there is enough space for improvements
Here's a new ingame video of the current development version of gnoblins:
Here are some of the changes of the last weeks (repost from indiedb):
For one we have decided to make a shift from the player character to the gnoblins. Instead of having a class or skill system for the player character, we made the importance of the gnoblins more prominent. The gnoblins have a class system now, which is based on specialization. A new gnoblin will always join your purpose as worker, but the player can specialize each gnoblin into one of the major classes later, which are crafter, warrior or scholar. Later on your gnoblins will be able to specialize further into mages, alchemists, beastmasters, scouts, engineers, and smiths. Each class will have unique tasks and abilities.
An other important change is the new mood system. Each gnoblin have a mood which effects his performance and his will to specialize. The mood of the gnoblins is directly connected to the work load and the dungeon comfort level. You need to make your dungeon more attractive and comfortable to make your gnoblins happy.
On the player side we have improved the traveling system. The dungeons are quite large and you would need some time to travel through them, therefore we have implemented a sprint mode for short distances and have added stones of teleportation in the dungeons for fast traveling over larger distances.
Procedural generation sounds great at first. Generating infinit content, the dream of every designer (or nightmare if your job get obsolete). But the reality tells an other story. Once you start developing your own procedural content generation you will realize quite fast, that most of it is just boring. The issue is, that players want meaningful content, not just huge amount of random content, and getting meaning into procedural content is really hard.
But it depends on where the player seeks meaning, and this depends on the human nature, where we as human individual seek meaning.
Lets start with a forest. When you walk through a forest, the meaning of this forest could be a location where you can feel good and free, a safe habour, a place you know. There's a natural order in a forest, the distance between trees, the light which reaches the ground determines the vegetation, but most people will not count the leafs on the ground, because the forest arised in a random manner depending on some existing parameter (i.e. biome). This is something we can try to capture with procedural content generation quite easily.
On the other hand think about an university. A great campus, with many buildings, different field of research gathered in only one or two building complexes. The cafeteria, parking slots, means of transport are structured in certain ways, sometimes in a logical way, sometimes historically based. Even if it is easy to generate buildings, streets, parking slots etc. it will be hard to generate a meaningful combination of it to represent an university. This introduce two difficulties, first how to generate something which has been designed by humans and how to combine smaller meaningful parts into something greater without loosing the meaning. Think about a parking slot, which has the meaing of, yeah, park your car to reach your destination on foot. Generating the parking slot 25 km of your destination would loose any meaning, on the other hand adding a fast traffic connection between parking slot and target destination would introduce a meaning.
The first class of PCG, natural content like forest, terrain, islands is easy, but the second class of PCG, human designed content, needs more engineering.
A practical approach is to start with designed content and try to break it up and recombine it in a meaningful way. The trick is, to start with designed content and don't try to generate designed content first.
In our campus example we would divide the campus into different areas like parking slots, mensa, research complex, inhabitants, traffic stations etc. The second step would be to define rules of combinations, i.e. the parking slots should be near the research complex, the inhabitants needs a connecting to traffic stations etc. When done, pick a part and try to break it up in a similar way, i.e. the inhabitants, they could be made up of different building types, a supermarket, a small park etc. This way you break up your target content in a top-down manner, but sometimes it will really hard to break it up any further.
The rescue comes in form of templates, that are small, meaningful, designed pieces of content. That's it, don't try to break up everything, sometimes it is much better and easier to design a bag full of meaningful templates instead of generating complex, chaotic, meaningless content.
Implementation tips: Implementation of the rules are the hardest part. Different content will require different rules which will eventually requires different algorithms and approaches, there's no best way to do it. But I found graphs really useful when recombining structured data. There're lot of graph algorithms (i.e. kruskal, dijkstra, A* etc) around which will help you to solve certain problems.
Conclusion: - use designed content in form of templates - design rules of combinations - work top-down, not bottom-up - never loose the focus on meaning
This is the first tutorial video for the upcoming alpha version:
The tutorial videos present an insight in the alpha version and will help new players to get into gnoblins more easily. Each video will be about 1 minute long and explain one major game feature. For now this video deals with the luring and managing of your minions, the next videos will introduce combat, crafting, and dungeon development.
Wow, Rock,Paper,Shotgun has covered my game (by accident ? ). Its popularity in downloads has jumped from ~140 downloads in two month up to ~2500 in one and a half day. This is pretty impressive for me and I'm quite happy about it
The second pre-alpha version of gnoblins with some great improvements is out.
Most important are the addition of sound fx and music. The awesome music is created by Christian Andersson (Craze Music).
As always you can download the new version here.
The new configuration supports mixed resolution rendering, that is, the 3d world can be rendered in a lower resolution than the gui to keep a moderate framerate at higher monitor resolutions even for not high-end videocards. The following screenshots display a scene with different quality setting at a screen resolution of 1680x1050 (the fps is displayed at the left, upper corner). All screenshots have been taken on a nvidia 8800 GTS videocard.
Here's the complete changelog:
[quote] [indent=1]Changelog Version 0.0.2 ======================= Major Changes: -------------- - Added an ingame options dialog. - Sound and music have been added ! Minor Changes & Bugfixes: ------------------------- - The map displays the edge of the level properly now. - Added a pause function (clock icon in hud). - Player animation/actions don't stop while a dialog is open any longer. - Inventory item drag'n'drop behaviour improved. - Items are no longer black when dragged. - Some gui frames do not change the color any longer. - Fixed a bug, where sometimes items are not showing up properly after a game has been loaded. - Game start time and level switch time have been reduced dramatically. - Fixed the terrain texture glitch. - Added an exit button to most ingame dialogs. - Armor and combat values (damage/penetration) are displayed in the equipment dialog now. - Handling of the save games has been improved: . You can delete characters now. . You can only play saved characters with the proper game version. . Fixed some bugs related to saved games. - Removed some texture glitches (red lines). - Can't equip any item to the earring,ring,bag slot any longer. - A newly created character gets a random name, which you can change. - Un-/equiping items to a statues is displayed properly now. - Added some low level creatures to the starting area. - Added Anti-Aliasing (set postprocessing setting above very low) - You can turn off the outlines now (set postpressing settings to extreme low) - Animals can no longer open doors.
I' currently working on the next version of gnoblins. The pre-alpha version is already online and can be downloaded from here. Any critique or comments are appreciated.
But back to the next version. It will be the first official alpha version. Main focus is sound,music and configuration.
Configuration is mostly done, thought I still need to draw some gui elements. Music has been added this weekend. I've implemented an ogg-vorbis stream after I discovered, that vorbis is a much better compression format than zipped wav files Sound, to be more precise, a 3d sound environment, is more challenging. I use xaudio2 as API and I'm still trying to tweak and pimp the sound experiences. I hope to get it done until this weekend.
Beside the technically aspects, I need to get/tweak/design an initial set of sound effects into the game. And finally I will fix 10-20 bugs in the current version before releasing the alpha. I think that it will need 2-3 weeks before releasing it.
And here's a little preview of the second alpha version: Ok, the second alpha version will introduce the name giving entities, the gnoblins.
The prg part, as represented in the pre-alpha and first alpha version, is only one part of the whole experience. The gnoblins are your minions, they support you, they will craft for your, they will build and maintain a dungeon "home" for you. So, stay tunes.
Still in preparation of the prealpha, but I already have branched it, made a short pre-alpha "trailer", added more screenies and playtested my game (open pre alpha end of this week !).
I'm quite satisfied that I have implemented permadeath. Death is not permanent at first, you have a certain favor amount, which will be reduced each time you die, but once it has been used up (3-4), the game is over, period.
Implementing such a thing is not challenging from a technical view, the real challenge is to accept, that this feature will repel gamers from playing your game, a risky move in times of streamlining and casual games. But this game was never meant to be easy, eventually it is a roguelike(-like) in 3d.
The reason the first few deaths are not permament is, that this is a realtime, 3d game with a high risk of being surprised by some monsters. Sometimes you just have bad luck, after a near-death combat sitation, when two spiders are incoming simultaniously from two different directions. Most roguelike games are round based, in such a situation, even if it as dangerous as in a real-time situation, you have atleast the time to think about your options. In a real-time situation you have only few seconds to react and I don't want to make an action game, this is still a slower paced RPG at its core.
With permadeath in mind, there're still two issues a playtester could become frustrated. The pre-alpha version is without sound and sound will deliver very important information of creatures in your next surrounding (sound is highest prio after pre-alpha start!). The other issue is balancing. With the right equipment most creatures will not be terrible challenging, but you need to find it first. The first dungeon is generated (the generator is not part of the public version yet) and even I don't know what items are around you can find, but I hope, that there's enough interesting loot around
I will upload the public version this weekend, so stay tuned and prepare to surive.
A successful weekend. I've finished the first release candidate for the pre alpha of my game gnoblins.This candidate is still part of the closed pre alpha phase, the public version will be released at the end of this week.
I've created the installer with NSIS, a nice little open source installation package. And I've encountered several pitfall of creating an installation package.
One is the right management under vista/win7. Instead of keeping your saved data in the program directory you need to put them in the common or user specific application data directories when you want to install your program in a protected area (i.e. standard programs directory). After some adjustment to my code I differ between read-only data and read-write data. The read-write data like configs, screenshots, and saved games are now written to the user specific AppData directory.
The second barrier was the multilanguage support for the installer. The game already supports multiple languages (for now only german and english). NSIS has some good support for this and I could come up with a passable solution, thought the uninstaller has some language artifacts, not really important, but I wasn't able to fix them yet.
An other headache was the modification of the configuration files in which the game language is set. The first approach, in which I let the installer replace a language string with the choosen language, was a dead end. The installer modified the file, but doesn't adjusted the rights, so that the configuration file was restricted to the admin only. The installer hasn't any trouble of setting the rights of installed files, just when you modify them afterwards. My solution is to install both language versions of the configuration file and rename the correct one.
And the last one, the side-by-side hell. This occurrs when you compile your game vs a certain lib version (i.e. msvc80) and the target computer has an other version installed, in this case you are in trouble. My current solution works so far, but I'm not happy with it. I think that I need to fix it in the future, but I'm not sure how to fix it yet.
Currently I'm in the process of (kind of) finishing the pre-alpha version of my game gnoblins. I plan to release it at the end of april, so not much time left.
A game in a pre-alpha version has so much left to do, that it is really hard to release it. But with this attitude I would never release it at all, trying to remove all kind of bugs and glitches while adding new features on-the-fly.
Therefore I'm using a time management technique called time boxing. That is, more or less, to set a fix time frame (this month) and try to approach your goal as close as possible, but after reaching your deadline, stop and be happy with the result.
Therefore I'm currently not adding any more features, any feature which is not in a worthy state, will be disabled and I will remove atleast one bug or one glitch a day until release. The latter has the disadvantage, that the nights get quite short when not solving a bug, but hey, that's the reason coffee had been invented, isn't it ?
Well, I've posted some shots of my experiemental outline shader over at polycount, so I think that it is a good idea to elaborate on some technical details here in my developer journal.
Outline shaders are always difficult to pull off. It is hard to get fine outlines done (most edge detection algorithm like sobel result in a atleast two pixel thick line). In combination with a high contrast color like black, the outline effect will be just too harsh and therefor many people will just dislike the effect, in games atleast.
I play around with a simple sobel filter to get the edge detected done. As detection criteria I use depth and normals. Currently I'm not using any AA filters, so it will look really clumpsy. In my first screenshot (upper part) you see a standard sobel edge detection in pure black. As you can see, it has an other negative effect, any bloom effect will be interupted. To counter this effect I fade out the outlines with distance (lower part, right arrow) and use a blurred,darkened version of the scene as input of the outline pixel. This has the advantage that bloom works (gets a bright outline) and the lines has lot less contrast compared to pure black.
An other challenge with outline shaders are particles. My next screenshot(upper part) shows clearly outlines behind the fire particle effect. This is really annoying, to get around it, I render the particle effects on a separate render target (btw. half resolution) and use the alpha channel of this render target as alpha mask for the outlines. You can compare it with the bottom part of the screenshot where you can see the effect of masking the outlines. The alpha mask is displayed in the bottom,right corner.
Next I will take a look at AA filter (FXAA, MLAA, ...). Here are some comparison shots displaying the game without (upper part) and with (lower part) outline effect applied.