Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Advanced search

1319263 Posts in 59268 Topics- by 50364 Members - Latest Member: kidori

October 22, 2017, 11:47:00 pm

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe LootCastle
Pages: [1] 2
Author Topic: The LootCastle  (Read 8593 times)
Steven Colling
Level 0

View Profile WWW Email
« on: December 08, 2013, 05:39:52 am »

About the Game
The LootCastle is a strategy game where the player takes the role of the skeleton king defending his castle from invading knights. The player does not control the skeletons, but can upgrade each of the five castle rooms by creating an own skill tree with randomly drawn and randomized skills. On the project website you will find further information and screenshots.

About Me

My name is Steven Colling (twitter.com/StevenColling) and I'm from Germany. I worked solo and fulltime on this (design, programming and graphics).


I released the game. You can get more information on the website:



The rest of this post relates to the original development log.

Current State

Sound and music are in progress and there is a playable version linked above. While there is more content to make, the game takes form.


I want to post further progress in this thread, primarily to avoid to work in absolute isolation :D. My current targets are:

- Adding enough content to release a playable version which I can share with others
- A bit fancy stuff for the skill tree interface and some info tooltips
- A tutorial in the game
- Long-term motivation in terms of quests (achievements)
- Organizing sound effects and music (in progress)
- Menus
- Titlescreen/Intro/Credits
- A highscore-related feature
- Loading/saving functionality
- Options (player profile management and game settings)
- A small editor for creating own skills and a content pack system where you can setup with which content packs you want to play
- More content
« Last Edit: February 12, 2014, 05:14:11 am by Steven Colling » Logged

Steven Colling
Level 0

View Profile WWW Email
« Reply #1 on: December 11, 2013, 02:44:17 am »

Interface Improvements, Attributes and Skill/Effect-Templates

Last Monday and yesterday I made good progress on the game.

I added some juicy to the interface and some helping tooltips as well as popping info texts, e.g. if the player tries to buy a skill without having the necessary money or brighten up the slots if their content changes:

A lot of work is code related. I already made the fight system and the character attribute management. In the following screenshot you can see the attributes of the skeletons in the room "The Barracks" (the blue one in the top right corner). The
player can investigate them in the skill menu for the skeletons in the room, for
every skeleton or knight by clicking on them and for the knights in total.

A unit can attack and probably hits (hit chance). The attacked can block (block chance) on a successful hit and if blocked successfully, the damage is reduced percentaged. Attacking and blocking has both a cooldown. There are also critical attacks with a multiplier on the damage done. Knights have more attributes, like experience or money dropped or the binding threshold: the health from which the knight stops running toward the throne room and fight the attacking skeleton back. So if the binding threshold is 50%, the knight will start fighting if his health drops below 50% of his maximum health.

Beyond that, I needed an effect system, where units can get effects like attribute modifiers or poison. What makes it a bit complicated, is the fact, that skills indeed have effects assigned, but the concrete values of the skills and the effects are randomized. Beyond a concrete "Skill" generated in the game, there are "SkillTemplates" used for generating them as well as "EffectTemplates" to generate "Effects" (used in the skill), which in turn generate "EffectInstances" if they are used on a single unit.

Fortunately I made generic classes like "PropertyModifier"-EffectTemplates, so skills which affect one of the presented attributes can be created very fast.

Another effect template are the trigger effects. Every event during fight generates a unit event (GetsHit, DoesDamage, BlockSuccessful, BlockFailed etc.). There are also combined triggers ("Trigger = Trigger && Trigger" etc.) and conditional triggers with respect to an attribute.

On the last two days, I implemented further generic templates, e.g. a template to inflict directly damage given a static value or based on the enemies' current or maximum health. Together with the trigger templates, I can make something like this very fast:

"skeleton inflicts 10 direct damage if he successfully blocks and if his health is below 10% of his maximum health"

We could name it "Terrified" or "Fear of Death"... getting skill ideas by writing a devlog. Nice.

As I said, the skills and effects have their templates, so in the example I can define bounds for the "10" (the inflicted damage) depending on the level (a measure within the skill generation to determine the general value depending on the skill's/effect's rarity, random offsets etc.) and the rank (every skill can be ranked up 5 times, so there are 5 stages per skill). I determine the inflicted damage for

level 1, rank 1
level 1, rank 5
level 100, rank 1
level 100, rank 5

and the concrete values within these bounds are interpolated (bigger values extrapolated). In the following screenshot, you see an exemplary skill which has currently rank 4.

The last generic template I want to share is a temporary attribute boost. If it is activated, it modifies an attribute and runs out. Together with the triggers, I already implemented a skill, where the critical hit chance increases after each successful hit for some seconds (stackable). The hit chance bonus and the duration are randomized parameters.

Today, I will create some further skills and hopefully, I can present tomorrow or the day after tomorrow a bunch of icons. And I have to decide if bandicam or fraps for future footage...

Working fulltime on a project is so much different from working on something just on weekends. I really enjoyed the last three weeks of being indie. I just wake up, work the whole day and play games in the evening. Not that healthy, I know. Anyway, given the current stage of my first project, I'm very confident that I will finish this (luckily, I am not that guy who starts many projects and don't end them :D). And Ludum Dare hardened me!

Thanks for reading!

Level 0

View Profile WWW Email
« Reply #2 on: December 11, 2013, 11:03:13 am »

This looks really rad!

I can't wait to see more of it.  Are you planning to post a video or demo any time soon?

Also, when is the release date?  This seems like my type of game and I'd love to try it out.

Website: Pirency
Dev Log: Lejendary Dev Log
Steven Colling
Level 0

View Profile WWW Email
« Reply #3 on: December 11, 2013, 11:44:33 am »

Are you planning to post a video or demo any time soon?

I will post a gameplay video next week and hopefully a playable version, too. This weekend is Ludum Dare, so I think it could get Friday or so.

Also, when is the release date?

If all works out like I want (balancing could be time consuming), I'll finish the LootCastle January/February next year.

Thank you so much for your comment!

Steven Colling
Level 0

View Profile WWW Email
« Reply #4 on: December 17, 2013, 09:02:36 am »

New Icons, Skills ans Effect Templates

This weekend was Ludum Dare and I made a Harvest Moon like game for the 48h competition. You can check out the game right here:


Last Friday I prepared for Ludum Dare and yesterday I had the typical jam hangover. Anyway, I worked on the LootCastle last Wednesday, Thursday and today - adding new skill and effect templates as well as making the icons for the current stuff.

PlayerBonus Effect-Template

The first effect template I made allows to give a bonus directly to the player. This PlayerBonus can be experience, money or skill point rewards. In combination with other skills, like the trigger effects, funny things are possible. As an example: in the altar room, there is a skill called "Curse of Greed" which reduces the health of the skeletons - but if the skeletons die, they drop some money.

Payoff Effect-Template

Another effect template I made is called Payoff. It allows to define an effect which is triggered by an unit event and is stackable. Then, another event can trigger the payoff and the stacked effects are used as a parameter for another effect. I used it in the following way: A skill called exploitation allows skeletons to add "exploitation effects" to their enemies, if they hit them successful. If the enemy dies then, all the exploitation effects are transformed to a money reward. So if the player combines this with attack speed buffs (without increasing the skeletons' damage), this could be a nice way to earn good money.


Here are some of the icons I made. They are all 60x60, but in the game, they are downsized to 30x30. These 25 are not all the icons I made, but the ones I like the most. Who wants a tasty soup with eyeballs?


There are about 40 skills in the game, so I have to do a lot more. Tomorrow, I will also make the preparations for a short gameplay video where all the things I talked about can be seen in action.

Steven Colling
Level 0

View Profile WWW Email
« Reply #5 on: December 20, 2013, 08:58:23 am »

Short Video, more Skill/Effect Templates, Skills and Icons


I finally found a good, free recording software (Open Broadcaster Software) and I made a little video of the LootCastle (with no sound/music) just to present you my game in motion.

Effect Template for Unit Events

In the last days, I also made good progress, fixed some nasty bugs in the effect templates and also added new ones: the handling of others units' events in a skill. As an example, there is a skill which is called "Meat Grinder", where a unit heals, if a unit (skeleton or knight) dies in the room.

Amount of Skills

Most of the time I made further skills. Now, three rooms (barracks, kitchen and the laboratory) have 20 skills. The other two rooms have not that much skills and this will be my work over the next days. Hopefully, I can present you a small playable version next week!

New Laboratory Skills: Potions and Poisons

The laboratory has potion skills which get triggered after respawn and which increase the skeletons' properties (dependent on the potion) for some seconds. These effects are more powerful than the bonuses gathered through the skills in the barracks, but they last not that long and are just a boost - especially useful in rooms, where you lowered the skeleton's health for other benefits: then, they often die and therefore, get often the potion's bonus.

There are also the poison skills, which allow to decrease the knights' properties. If such a poison skill is ranked up, it adds poison effects to the attacks of the relevant skeletons. Every time they hit successful, the knight gets poisoned for some seconds with further disadvantages. There is also a poison which does damage over time.

Skill Type per Room

Whereas the barracks have skills which increase the fighting abilities, the kitchen has supportive skills - affecting the health and regeneration, the respawn time and more. The laboratory will mostly have skills which are of temporary nature and limited in their uses until death, like potions and poisons. The altar room will offer skills for the adventurous player. They mostly offer good bonuses, but with drastic trade-offs like the loose of health, gathered money and more. The throne room, finally, is specialized to increase the gathered money and experience. So you have to choose wisely, where to spend your skill points and on which room to focus on!


And some candy at the end, here are the potion icons! (and a beer icon to fill the space... Cheers!)


Steven Colling
Level 0

View Profile WWW Email
« Reply #6 on: December 23, 2013, 01:05:30 pm »

Skills/Templates, Interface Improvements and Preparations for the Playable Version

Hi there! Last days I made good progress on my game. I finished making the skills I want to make for the first playable version. There are 20 skills per room and therefore 100 skills in total. Making the 100 icons was a challenging but fun work (not all are unique, many of them are replicates with changed colors, e.g. the icons for potions).

New Effect Templates

This time, I present two new effect templates used for new skills: the "on chance" template and the "skill tree bonus" template.

"on chance" is quite a simple template which allows to trigger an effect with a given probability. I made a funny skill for the altar room, which is called "Original Sin". Skeletons in the affected rooms have a lower respawn time, but they instantly get a lot of damage with a chance of 10% after respawning. The altar room offers mainly skills with adventurous trade-offs, so this skill is rather typical.

The "skill tree bonus" template allows to increase the generation probability of skills with a certain rarity. The rarities are derived from MMOs: white, green, blue, purple, orange and red. Beyond the rarities, the decrease of certain prices is also possible, e.g. decreasing the buy costs of skills of certain rooms.


Here is a pack of icons I made.

Interface Improvements

I added further effects to clarify what is going on (not enough money if you try to buy a skill etc.). The skills have level labels now:

In every room, you can investigate a short summary of the effects which affect the currently displayed room.

Playable Version

I want to share a playable prototype before the week is out. I started tweaking values like the money at start, the skill costs and so on. I have to do some not really important interface improvements and I should play my game as often as possible, before I post it (even if it is a prototype).

I got a buddy who makes the sound effects and the music and perhaps/hopefully he has something to share in some days - so I can implement it.

Finally: Merry Christmas!
« Last Edit: December 23, 2013, 01:25:22 pm by Steven Colling » Logged

Steven Colling
Level 0

View Profile WWW Email
« Reply #7 on: December 29, 2013, 04:28:16 am »

Playable Version and the Tutorial

Playable Version and Interface Improvements

Yesterday, I published a playable version of the game here on tigsource:

I'm very happy to achieved an important milestone! In the last days, I didn't only prepared the game for others and fixed balancing and content issues, but also made a lot of small improvements to the interface, e.g. that multiple instances of an effect are shown only with one icon and a number instead of single icons for every instance:


The most time I spend on a very important part: the tutorial. It's provided with multiple small text boxes and where the areas of interest are highlighted with small skulls. I wanted to show the player how to do things instead of just talking about them. In the following screenshot, you see a part of the tutorial.

For the skulls, I made a little gif:

I tried to focus on the following things while doing the tutorial:

- short instructions, because reading and remembering gets difficult really quick
- step by step, so the player is not overstrained
- highlight the things on the screen to create the context
- whenever possible, let the player do the action talked about
- focus on the basic elements, the player will discover the remaining stuff on his own (and which is part of the game's fun)
- make the tutorial visual appealing and with informal text
- make it possible to skip

What's next?

Initially I posted a list of targets. Here is the updated version:

- Adding enough content to release a playable version which I can share with others
- A bit fancy stuff for the skill tree interface and some info tooltips
- A tutorial in the game
- Organizing sound effects and music (in progress)

- Titlescreen, menus, Loading/saving functionality
- Long-term motivation in terms of quests (achievements)
- A highscore-related feature
- A small editor for creating own skills and a content pack system where you can setup with which content packs you want to play
- More content

In the next days, I want to implement the content pack system, because loading/saving and the quests will/can depend on it.

Beyond that, I want to make further improvements to the LootCastle-website, adding more descriptions, a newsletter and a small forum for making it easier to post/discuss balancing issues and to share custom content.

Steven Colling
Level 0

View Profile WWW Email
« Reply #8 on: January 04, 2014, 02:47:14 am »

Performance, Content Pack System and Quests

The last days were very busy in terms of working on the project (except the days around the new year). I also published a new version of the playable prototype with further fixes and balancing attempts. A lot work but nothing really to show. You can check it out here in the forums, together with the changelog:


Performance Issues

The game ran slow on my laptop and laptops of my friends, which should not be the case for a such a game like the LootCastle. This was the first time I used the performance profiler of Visual Studio, which is a nice tool and which helped me to instantly find the issue ("ANALYZE" > "Launch Performance Wizard" in Visual Studio 2012). If you ran the profiler, you play the game and in the background, it samples the called functions and other metrics. As a result, you get a log with a graphical representation of the cpu usage of the whole session as well as the "hot path", a call tree of the most-called functions. The latter one looks something like this:

If we take "Inclusive Samples" (second column) as a metric for operating expense, we see, that the update-function of the InputManager has... a lot to do. For the comprehension: "The LootCastle" is the game project whereas "GB2D" is an own little framework on top of XNA with basic things for games, mostly divided in different "Managers", like the "InputManager".

The problem was found quickly and was caused by the fact, that it's very old code from me. It's very stupid code and really awkward (I always checked every input by iterating over the whole input list and getting the right one by comparing input identifiers as... strings...).

As I changed it to integer identifiers and a direct access to an array of inputs, there was a huge performance improvement. The game runs on all the tested laptops without any lags and the performance profiling shows the following result:

The inclusive samples were reduced respective the InputManager from 4042 to 273 samples. That's a difference!

Fast Forward and Skill Points per Level Up

With the newest version, I changed the giving of skill points from killing a knight to having a level up. So every level up, 10 skill points are given. This works better, because rewarding every kill with a skill point resulted in too many skill points. Although it had a good flow, it was somehow strange, because you couldn't watch the fights without having a bad vibe about not spending the skill points (something like "wasting time"). Giving skill points only per level up seems to break the flow, forcing the player to wait for enough experience and doing nothing than watching, which is very (very) bad in games. So I implemented a fast forward mode (2x and 4x). One can think, this is a shallow solution to the problem and somehow counterproductive, because you can jump over the fighting part, making it worthless at all. But testing is better than talking, and so I made it and I must say, it has a far better flow and balance, than the previous solution. I played some rounds and it was really fun. You invest your skill points and watch the fights. Even in fast forward mode, you can understand what's going on and it's fun and funny how the knights and skeletons fight with a higher speed. Than you get a level up, new skill points and take a minute to refine your skill trees. I think I got it!

Content Pack System

All the skills of the LootCastle can be serialized and deserialized from XML. I used this to implement a content pack system. Now you can add own skills as part of XML files to the game just by creating/editing such a file in the skill-folder of the game. I also want to share the original skills, so you can make own custom versions of the game. The whole saving and loading of skill templates works fine, but I made no frontend yet: Later, I want to make an editor (WinForm-application) to create and manage skills. I also want to implement a little system to use own icons instead of only the given ones. Here is an example:

      <Name>Sharpened Swords</Name>
      <AtmoText>These swords will pierce through the enemies' armor.</AtmoText>
      <Description>Increases the damage done by the skeletons percentaged.</Description>
        <EffectTemplate xsi:type="PropertyModifierEffectTemplate">
          <Name>Damage Bonus</Name>

You can use all the effects I implemented, it's really 1:1 the same like what I use in the code. You can even add particle effects and define their behavior, like they are used for poisoned enemies.


Yesterday I started to make the quest system and it works from the code perspective. Quests in the LootCastle are something like achievements. I split them into two groups: the statistic quests and the story quests.

The statistic quests have multiple ranks and cover basic operations in the game, like knights killed or money collected. They are mainly used as a kind of progression tracking for the player, making it able to see what he done in the game (I like such statistics in games very much) and making it more interesting than just a simple list of statistics. There will be little badges to collect from killing a certain amount of knights and so on.

The story quests define a questline where each single quest will have more complex challenges. I often read that people dislike achievements, breaking the flow, the immersion and being overall stupid. For me, achievements are a very useful and powerful tool, if used wisely. I don't like stupid achievements like "you finished the tutorial!" or skinner-boxy achievements like "repeat this very stupid action (27/1000)", too. But I often experienced these things in other games:

- Having fun to compare the progress in achievements with friends who play the game, too.
- It's interesting to see, because achievements reflect the very own playing style.

And the most powerful:

- Achievements let me see a game and its mechanics beyond one's own nose. I experience fun parts of a game where I didn't know they existed or thought they wouldn't be fun at all. They can lead to subversive playing, where the player injects an own game system within the original game system. A good example: I had fun to collect the achievements in Battlefield 3 (oh yeah, a mainstream game, a game from EA and achievements in one sentence!) and as I had to do the badge for killing people with mines, I thought "oh yeah, now I get one of these noobs which throw mines everywhere..." and wow, that were some evenings which changed my Battlefield from being a mad pump-gun hopper to a thief-like stealth guy which passed through the enemies' lines and placing mines out of the shadows on strategical important positions. Much text for a short conclusion: achievements can increase the player's scope.

Whereas I cover the first two points with the statistic quests, I want to address the latter one with the story quests. The story quests will force the player to cope with certain parts of the game and to play a kind of variant of the original game. If I make a quest like "Survive wave 10 while only using the skills in the altar room", I can let the player experience the altar room, which he probable may found useless to date, and I can give him a special variant of the game, a new competition. And this is far away from skinner boxy, repetitive playing.

The immersion thing I totally ignore, because the LootCastle is just not an immersion based game and a popping "you finished quest X" is not a problem at all.

Today, I will continue on making this. Thanks for reading and feel free to leave a comment or opinion, e.g. about how you experience achievements (which would be very interesting for me to read about).

Steven Colling
Level 0

View Profile WWW Email
« Reply #9 on: January 08, 2014, 10:37:15 am »

Quest Interface

The last 3 days I worked on the quest mechanic. I made the graphics (which took longer than I expected) for the quest interface and implemented one of the two groups of quests: the unlock quests.

Unlock Quests

The unlock quests are what I called the "statistic" quests in the previous post and they are a way to check what you've done in the game, e.g. how many knights you killed or money you earned in total. Every quest has 3 stages and every stage is awarded with a star and a cheat.

I (and friends of mine) thought even for these unlock quests, there should be some kind of reward, not only some star graphics. So I decided to allow cheat modes, which can be activated in the main menu later, but not during play. While cheats are active, no other quests can be accomplished nor the highscore can be accessed (if I implement one).

With these cheats, you can turn the game upside down, e.g. by increasing the count of knights or skeletons, increasing the drop chances of rare skills, increasing the strength of the knight bosses, increasing the skill lottery cost to make it more tactical, removing the buy cost of skills or reduce the time between waves to unleash a total massacre.

They are all implemented and functional.

I hope these quests are not considered as grinding, which I try to ensure by making a story quest engaging enough. The unlock quests with its unlockable cheats are meant to be as an addition and to measure some basic metrics of your play.

Quest Interface

The quest menu has two pages which can be accessed through the two golden buttons: one for the unlock quests (the golden skull) and one for the story quests (the golden "!"). The menu shows a short description of every unlock quest touched with the mouse, presenting its name, the actions to achieve for getting the first star and the cheat which is unlocked through achieving it. The second and the third star unlock stronger variants of the cheat. If accessed through the main menu, the single unlock quests can be activated by clicking.

There is a "!" button in the bottom right corner which opens the quest menu. The other button there is for opening the game menu, which I didn't implement yet.

What's Next?

I'm not sure what to do next (respectively tomorrow). I implement either the story quests or I work off a list of tasks which got bigger and bigger. It includes a message, that the king is under attack, a health bar of the king permanently on the screen, minor interface effects and other stuff, which are not elemental, but... I must watch out for the perfectionism, which could probably eat me up :D

By the time I finished the story quests, I release a new playable version in the feedback forum. So if you have some time, you can already play some LootCastle and give me feedback, which would be so kind:


Level 8


View Profile WWW
« Reply #10 on: January 08, 2014, 10:40:22 am »

Looks very interesting. The interface seems to be quite charged and the graphics sometimes inconsistent in style, making it hard to follow (Skeletons or skulls' style In-game vs UI, for example). Still, I quite like it, I wish I could try it (I'm not home right now) to see how it translates into the actual gameplay.

i make games that can only ever be played once on http://throwaway.fun
Steven Colling
Level 0

View Profile WWW Email
« Reply #11 on: January 08, 2014, 10:53:32 am »

The interface seems to be quite charged

I agree with that. The current state is not the perfect trade-off between easy access and clarity, e.g. respective the things in the top left corner, which I could move to an own menu - or the size of the experience bar.

graphics sometimes inconsistent in style, making it hard to follow (Skeletons or skulls' style In-game vs UI, for example)

I tried to have a kind of contrast between the rooms and the skeletons, by making the latter one pixelated. Another reason is, it's very hard for me to animate complexer graphics of skeletons and knights (I'm totally happy that I accomplished the current skeletons respectively their animations :D - and I fear, that if I would iterate over the graphics many times, I miss many other learning opportunities by just making the next game... it's hard to weighing up, especially because it's my first game).

Thank you for the feedback!

Steven Colling
Level 0

View Profile WWW Email
« Reply #12 on: January 11, 2014, 09:37:18 am »

Story Quests (and Interface)

I had a free day yesterday, so I worked only on Thursday and today - making good progress on the quest system, which is nearly finished.

Story Quests

I decided to move skill rewards for completing a story quest to the "optional tasks" list, so I can focus on the other stuff I have to do. I also decided not to write long story texts which are mostly not relevant for the game itself, which has more an arcade style of playing. So I made a poem to provide a story-based context which is funnier to read than prose.

The story is divided into three pages where every page has an own visual style, a part of the poem and three quests. The next page gets unlocked, if you complete two of the three quests. As I described earlier, there are, as an example, quests which force the player to use only one of the rooms, which is a special challenge and a way to let the player to learn the skills in this room.

Page Backgrounds

Here are the background images of the three pages (not blacked out).


Once upon a time,
In a land far, far away,
A vast and ugly slime,
Made its evil play.

Dropped out of an artifact,
It spread its evil seed,
The people now undead,
A demon made of greed.

The king of our castle,
Once a man of proud,
His own greed was a dazzle,
But no, he is not cowed.

The demon yelled: all is mine,
To satisfy my greed,
Richness was his heart,
And looting was his beat.

Since then, they have to gather,
As many loot they can,
Its worth, it doesn't matter,
They want to break the ban.

The other kingdoms signed,
So that many risk their health,
All their kings got wind,
Of the castle's fabulous wealth.

If you find some mistakes in it, let me know Smiley

What's Next

Tomorrow, I make a rough prototype of the main menu so I can hook up some code which is related to starting new game sessions. The saving of the quest progress is another thing I have to implement, but this should not need that much time, as I already implemented the underlying structure (saving profile information). If it works out well, I can present a new playable version next Monday.

Level 0

Indie artist and game developer

View Profile WWW
« Reply #13 on: January 11, 2014, 10:16:49 am »

Has some Dungeon Keeper vibe to it. Looking forward to see more videos from you. Smiley

Steven Colling
Level 0

View Profile WWW Email
« Reply #14 on: January 14, 2014, 11:47:45 am »

Quests and Menus

Quest System

The quest system is finished and works fine. You can unlock cheats and activate them or play through the "story". The quest progress gets saved in a file, when the game closes.

Menus and Interface Effects

The last days, I had a lot to do with the main menu and the ingame menu. There is also a "Really want to exit?"-dialog and a warning message if cheats get activated (they block completing further quests for the current session). All in all, this is very basic and not that much stuff - but I didn't implemented just these menus and dialogs, but the underlying structure of them as part of my own framework. In future, it's very easy to generate new menus and dialogs, add buttons and executed events as well as special effects like highlights or fading.

Especially the (generic) implementation of the effects was tedious work. This includes hover and click effects for the buttons as well as fade effects (smooth appearance and disappearance of menus, texts, buttons etc.). Here is an example (not that smooth, because it's a gif):

To pass code triggered on button clicks or interface effects ("after the fade finished", for example), I discovered anonymous methods, where you can pass code through a method:

someMethod(delegate() { /* some code here which can be executed by the called method */ });

Beyond the menus and dialogs, I extended my interface toolbox by a black overlay screen, which is used to fade in (and out).

Playable Version

If you want, you can check out the game here (I uploaded a new version with the quest system some minutes ago!):

What's Next?

Beyond some minor stuff (you know what I mean...), I want to make a highscore system because I think, it would extend the game in very nice way. Then I have to make the options menu, title screen, intro and credits. After this, balancing and some further content is on my plan (while I'm not sure, if any further content is really necessary - it just plays good at the moment with the manageable amount of content; on the other side, I want to make some rewards for the main quests).

Steven Colling
Level 0

View Profile WWW Email
« Reply #15 on: January 17, 2014, 11:35:37 am »

Highscores and Interface Programming

The last days I spent on implementing a text box where the user can type in his user name. The second (and bigger) part of my time I dedicated to the highscore system.

Text Box

Yes, I implemented a text box. I know, using some library which do such things would be more intelligent, but sometimes I think it's better to make things on your own - beyond the fun it's a great learning experience and I will have less problems porting the game with MonoGame to other platforms or refining it. It's all about finding the right balancing between learning and using, not?

So I extended my interface library with a text box where the user can input text. It's configurable which characters are allowed, it can be centered, the font determined and there is also a blinking cursor:

Furthermore, I implemented some (but not all!) controlling features of normal text boxes. You can change for example the position of the cursor with arrow keys as well as the "home" (called "Pos1" in German oO) and the "End" keys. You can also delete characters with "Delete" and "Back" - in the end, all normal stuff. For moving the cursor with the arrow keys, I implemented the cursor's behavior, that on the first press it moves one position and after holding down the key some milliseconds, it moves it again with a certain speed. Now to the more interesting topic.

Highscore System

If the game gets started the first time, the user gets prompted for writing his user name into the text box I talked about. Then, a profile is saved (no online stuff). If he loses or ends a game, he gets asked if he wants to upload the highscore to the LootCastle-website and if so, the game packages the whole state (profile name, waves survived, level, money, skill points as well as all the skills used in the different rooms and more!) and sends it via POST to the website (a PHP script).

The script makes some security checks for preventing SQL injection. For a bit cheat protection, the data gets hashed together with a "secure" key (decompiling .NET programs, oh yeah!) before sending. Then, "data" and "hashed(data+key)" is sent. The PHP script, which also has the key, can verify the sent data (hashed(sentData+key) == sentHash?).

But because their is no account management, everyone can use an arbitrary and therefore already existing profile name and therefore make scores for others. Implementing such a system would be just over the top...

The PHP script processes the data and puts it in a database, so that I can easily read out single parameters of the uploaded game session. I made a test-website which outputs a basic highscore list, but nothing to show yet - it works technically.

What's Next?

The webdesign of the highscore website has a lower priority than things more important for completing the game. I have to implement balancing feedback from testers and minor interface stuff (I completely forgot to display the current amount vs. needed experience on a tooltip :D). The next bigger things are the intro, the title screen, the options menu (changing resolution and changing profile name are planned), credits screen and thinking about a trailer (and how to realize it - I have no experience in this and while I'm very curious about it, I fear it to a certain extend, too!).

Thanks for reading!

Steven Colling
Level 0

View Profile WWW Email
« Reply #16 on: January 21, 2014, 11:21:30 am »

Music, Sounds and Title Screen

The last days I got really busy in finishing the game and I had always this "before I write a new devlog post, I want to finish this part"-feeling. But here it is! Beyond the things described in the following, I made a lot of (boring) stuff, which I don't want to cover here. Here we go!

Music and Sound Effects

My buddy headchant (@headchant) made the sound effects and the intro music, which are both really nice. After some lettuce heads and other things, he got sound effects like this (which I use if a unit gets hurt in the battle):

The fights in the game feel very lively with all the sounds for hitting, blocking, missing, dying and so on. To implement the music, I extended my sound managing classes for playing music and sound effects, setting their volume and more. Music and sound volume will be adjustable in the settings, which is right at the moment a settings file, but one of my next steps is to implement a slider in the options menu (more GUI programming, yeah! Meanwhile it makes more fun than at the beginning.).

Title Screen

I decided to separate the title screen into multiple layers:

  • the LootCastle map with its animations and particle effects in the background
  • a stone gate on top of it
  • a skeleton guy
  • the main menu

Then, the layer with the stone gate and the layer with the skeleton guy move a bit, independently from each other. This looks far more better than some static image or just the map of the castle. Just imagine the following moving (or check the playable version):

I'm not a graphics guy, but yeah, I try my best.

Splash Screen

I made a splash screen with hlsl shaders. Multiple layers of the logo and my name are moved with transparency into each other why the shaders add a vibration and glow effect, which is hard to describe or to show in a single screenshot. To avoid blowing up this post, I don't post it as an image and just give a link:

The splash screen can be skipped with a click, the space bar or the enter key and also deactivated in the settings.

Playable Version

I added a new playable version of the LootCastle here in the feedback forums, so feel free to check it out and to leave feedback here or in other thread:

What's Next?

The next things I have to tackle:

  • more balancing and playtesting
  • a short check if a new update of the game is available (I totally forgot this!)
  • design of the highscore website
  • settings menu
  • getting someone making a Let's Play of my game, which I can link on my website instead of a trailer (which I can't afford right now)

Steven Colling
Level 0

View Profile WWW Email
« Reply #17 on: January 27, 2014, 06:16:30 am »

More Webdesign, Check for Updates and Messing Around with Resolutions (oh my god that sucked!)

Highscore Webdesign

This post has some bigger images. Sorry for the loading time and the traffic. I dedicated two days to make a proper webdesign of the highscore website and I used - of course - mostly graphics from the game.

On the top, the 5 best players in the categories "waves survived", "level reached" and "money gathered" are presented (the values are just dummy values):

Then, the 100 topmost players are given with all the statistics like experience gained. Each column can be sorted.

If you click on the player's name or on the "show" label of the "Skills" column, you can see the player's build he used at the end of the game:

The skill tree of each room is presented, with all the skills slotted and their rank. For every skill, a mouse hover gives the specific details of the skill. It looks like the tooltip you got during the game. The tooltip was made solely with CSS - no javascript!

Update Checking

As I wrote in the last post, I totally forgot an update check for the game, which is relevant because if I balance the skills after release, I want to share it with the players. On the game's first start, it asks you if it should check for updates on every start and if so, the game checks the website for the current version and displays a message if so. Then, you can decide if you want to open the update website or just skip the message, playing with the old version. The update check is moved to an own thread, so it doesn't disturb.

Screen Resolutions

As I said in the headline, I made the management of different screen resolutions. Oh. My. God. That sucked. Three whole days including throwing away all the written code after 1.5 days and endless bug hunting for supporting different screen resolutions. I totally faded out, that I have to support different screen sizes, as I made the game (especially the interface). The initial problems were the following:

1. The original resolution respectively window size of the game is 768x768. That's too big for laptop screens, so I wanted to support at least ?x600, so you can play the LootCastle with full screen and a ?x600 resolution.

  • The interface was hardcoded and therefore, the bottom part of the screen (interface and relevant parts of the map) were missing.
  • There was no distinction between interface and map, so I couldn't just make the map scrollable and draw the scaled interface on top of it.

To solve these problems, I coded a mapping of layers, where every layer is dedicated either to the map or to the interface. So every stuff which is drawn on a map layer is transformed (map coordinates to screen coordinates) and stuff on interface layers stays in screen coordinates. I also implemented a camera and smooth camera movement to target positions. Now, the map scrolls, if the cursor is near the top or the bottom window border (and the interface stays on its place).

Every interface element has an anchor now, which defines the window border it's bound to. So all the interface elements which are bound to the bottom screen border, move to the top, if the window's height gets smaller. With these changes, I had to rework not only the interface, but also the whole tutorial.

2. I also want to support window sizes bigger than 768x768. The game looks not good if scaled, so I have to stick with letterboxing. I draw the scene to a render target and then draw this centered on the screen.

Now, you can change the resolution to whatever you want (768x600 is minimum) and even full screen is supported. If the width or height exceeds 768 pixel, the remaining window is filled with black. My lesson: supporting multiple resolutions sucks and I'm happy I extended my framework to make it easier in future games.

What's Next?

  • Allowing a player to show the highscores of all his sessions on the website.
  • Playtesting and balancing.
  • Implementing the option menu.

My target was finishing the LootCastle at the end of January and I think, I can implement the options in the remaining days of this month. February is dedicated to playtesting, balancing and releasing, including website updates and promotional material. If you have any tips for price/marketing/press specific to the LootCastle (which isn't covered by all the guides you can find in the web like PixelProspector etc.) - just tell me!

Thank you for reading!

Level 2

no one of consequence

View Profile WWW Email
« Reply #18 on: January 27, 2014, 12:13:14 pm »

Looks really nice, despite your comment about not being a graphics guy I think you've done a really nice job with the graphics overall.


Infernohawke Entertainment
Steven Colling
Level 0

View Profile WWW Email
« Reply #19 on: January 28, 2014, 08:54:41 am »

Thank you very much for your comment!

Pages: [1] 2
Jump to:  

Theme orange-lt created by panic