(This is a re-post of my blog: Dungeoncolony.tumblr.com)
Greetings Dungeon Lords,
I have been waiting for this moment a long time and I am happy to be able to post a new version again (v.0.1.8.150). As you will read, this version caused many bugs, and bugs seemed to appear exponentially. But most of them are now fixed and the engine has become more stable.
In the past, I had been releasing a lot new game features without tending to some other important game engine needs. Finally, I began tackling them a few months ago. The engine upgrades had been on my to-do list for quite some time, and I now regret not having started work on them earlier because the main issue here was that they concerned changing much of the core engine, which in turn affected almost every element, feature and game content created thus far. The only regret, really, (and my learning experience passed on to other game devs) is that of time and taking longer than needed, but nonetheless, it was tremendously fun to make the changes and see the engine improve upon it. As an independent developer however, and if you are one you will most likely agree, life often comes in the way of the thing you’d like to work on. For me, it was personal family matter, my day-time work, of course, including tight deadlines, but also a much needed break and a vacation to go back home to Europe and recharge the creativity batteries and get a bunch of new inspiration from some amazing landscapes and medieval structures. If you have been on my contact page, you may have noticed a picture of me there, in front of a castle. During my vacation, I finally hiked again to that same castle, a place of inspiration to which I used to go to constantly when I was younger.
A big apology to all Alpha testers who have already constructed big dungeons and saved them to the server: Anything saved before v0.1.8.150 is incompatible with the new engine; the changes in the game engine made it impossible (or way too much work) to be still compatible with the new engine. In the past, I tried to avoid that as much as possible, however, since this is still Alpha, and the main architecture of the engine is still not complete, this is something that is unavoidable and will still happen in the future.Below is a rough summary of all the primary engine changes that were implemented since the last release.
The main objective was to improve three core features:
- Allow creatures and objects to be positioned freely on the map, regardless of the bounds of tiles.
- Allow objects and creatures to have bounds/sizes that match their image.
- Improve movement and path finding based on the two previous changes.
The game was originally based completely on large tiles, which also governed movement, object placement, object triggers, collision and much much more. The upgraded engine required granulation in tile size that affected nearly every class in code. Back when I started Dungeon Colony, the first thing that I defined was the tile sizes. Here is the first screenshot I made after a few hours of coding the game.
These are the different tile materials (stone, water, ground). The new engine is much more defined and can handle arbitrary sizes, removing the tile contraint and opening up amazing new game object possibilities than before. Size matters and brings new strategies to the player with regards to where objects are placed and so forth.
Reducing the tile size constraint also allows objects to have sizes that are bigger or smaller than a tile. For example, in terms of collision boundary, a rock is now around 8 times smaller than it previously was. This also reduced the selection boundary, the visible white rectangle that you see around a selected object on the map.
So far, I have never had that many bugs at once and with careful iteration, I managed to get the game back into a working shape, but I still need your help to find any remaining bugs left uncovered, especially when it comes to saving a game. I believe that there are still some bugs left that don’t save objects properly.
Summary of changes:
I moved to a new web server which caused the website to malfunction for a few days. The only problem was the registration page which is now fixed again. I am also trying to decide on a community forum and looking for different services. If you have a preference, I’d like to hear from you. The website is written in .Net, so something that is compatible would be good.
Summary of Changes/Upgrades in version 0.1.8.150:
- Coal Resource: This resource can be found when mining Rock walls. It replaced wood as the fuel for the furnace. You can use coal to smelt raw iron into iron rods. Iron rods into steel plates. Sand into glass flasks, and clay into clay pots for water storage.
- Sub-Tiles: Sub-Tiles allow objects to be placed with more precision on the map. This means that placing a chest for example does not have to be constraint by a tile anymore, but instead, can now be placed almost freely on the game map. The new sub-tile grid still constraints object placement to a certain extent, which gives the player pleasant feedback, when object stick to the area where placement is possible.
- Cancel Orders: Allows players to cancel command by selecting the object that has been assigned a command to. In most cases a button will appear on the right hand side labeled “Cancel Command".
- Upgraded to LWJGL 2.9.0
- Path-finding: Given the new sub-tile constraints, the path finding algorithm needed to be upgraded to work with smaller tile sets and with arbitrary object sizes. The new path add new strategic elements since placing objects can change the outcome of your tactics tremendously. A bit of optimization is still needed, but that’s left for a future version upgrade.
- Objects & Creatures resized: Nearly every object has been resized to scale better with the game world. Previously a log of wood or a pile of coins had been too large and misrepresented when laying on the map. Enemies also appeared to big and their bounding rectangle often extended beyond their actual position, which caused inaccurate collision detection.
- Object & Creature selection. This improves selecting creatures and objects on the map. Moving entities, like creatures, does not require clicking within their boundary (selection frame), some tolerance allows you to select a creature even if the mouse is not covering the creature completely. However, non-moving objects do require the mouse to be intersecting the selection boundary.
- Creature movement: Movement has also been updated with regards to the new subtitle system. Idle creatures walk slower and have slightly better intelligence. (more to come)
- Light/Shadows: Light sources have been updated to match the new sub-tile position constraints.
- Traps are now obstacles that your creatures can’t walk over any longer. Unlike enemies and neutral units like the boars, your creatures still know where traps are placed and will walk around them. Placing traps requires more strategic planning since you can’t just fill a corridor with traps for enemies to step in. You also need an open path for your creatures to pass by.
- Lumbering wood: To lumber wood, you now select a tree and right click on it. This is the standard way to activate any object that can be activated. Similarly, you right click on a leg trap to re-arm it, or you right click on a patch of mushrooms to collect them…
- Creatures recalculate path when following another creature and if the followed creature has moved a certain percentage away from the original target point of the calculated path.
- Adds red attack indicator over target when a creature is attacking a target
- When selecting a creature the crosshair shows the target center position if this position is walk able. If an object is selected, the target position is shown using the actual object sprite.
- Placing objects over themselves is now possible. This allows to move larger objects by a fraction.
- Changes the trigger area of traps using a reduced boundary than the selection boundary.
- Increases stamina potion strength 10fold.
- All friendly units return used/empty potion flask back to their original container after drinking them. If it was in the creatures bag, then that’s where they stay. If the potion was taken from a container, like a chest, then it’s returned back into that container.
- Re-prioritizes eating before getting paid.
- Updates tree growing and reproducing behavior. Trees grow slower and can only reproduce when reaching a certain size. Tree’s also return different amounts of nuts given the size. And nuts are less calorie rich then before.
- Allows player to place items outside of the dungeon.
- Increases the uses of leg-traps.
- Changes the recipes for certain objects (Campfire, firebowl, and bookstand)
- Adds Alchemy bar to study items.
Bug Fixes (unrelated to game upgrades):
- Fixes bugs with new web-server and problems with the registration page
- Fixes some issues when transferring objects to other objects.
- Fixes many issues with attacking enemies, including facing enemies correctly, collision with enemies and other issues, such as enemies trying to attack each other when separated by non-walk able objects. Friendly creatures will ignore blocking objects while enemies will try to destroy them.
- Fixes bugs with transparency issues in OpenGL drawing methods.
- Fixes issue with consuming potions where health had to be lower than max. Also consumes only one at a time. Fixes button for consuming stamina potions for the workers.
- Fixes issue where objects like the table rotated into other objects or walls.
- Fixes bug when selecting items produced in the furnace, alchemy bar or cooking pot.
- Fixes bug when the Frame of the Study moved after closing and reopening
I would greatly appreciate your feedback, comments or suggestions. You can reach me via twitter or check my contact page. Finally, if you haven’t tried it yet, you can download the game free at Dungeoncolony.com. Support is always very much appreciated.