Dragonhelm (Tactical roleplaying game)

  • Hey, great game so far. How did you go about constructing the world map? I gather it's not randomly generated. Are you using a very large tile map?

    No, the world map is just a very large tile map that are "hand painted" (62500 tiles), this is only the base terrain like grass, rivers, roads, mountains, hills and so on. And I would like to add some lore into it as well, so if it was random generated i think it would be quite hard. Then I automate a collision map, so some tiles cant be move on, and tiles with road are better than those without and so on. And all resources and dungeons are randomly generated as well.

  • Tactical combat update

    Having spend a lot of time trying to figure out how I wanted this to work. I decided to split the tactical combat system into a more board game type of combat system.

    So it now consist of several phases.

    1. Movement phase

    All units will move in this phase in turn based on there initiative. This is because it seems more logic that even though someone might be faster than someone else, they shouldn't be able to run across the map and kill someone before anyone else is able to move.

    2. Action phase

    In this phase all actions takes place, such as attacks, using abilities, casting spells and so on.

    Mainly I have been working on the movement AI of the enemy and at the same time made it a bit more tactical so it allow the player and enemy a like to use there units more strategic, in the sense that units will now block all tiles around them, which will allow the player to use there warriors to defend weaker characters by placing them in the path of enemies that would try to attack them.

    Example of the actually movement of enemies.

    However it is still very early in the process and at the moment enemies only have one tactic which is to go in close combat. But plan on adding several tactics, so some enemies will prefer defending weaker targets, enemies with range weapons will try to keep distance, enemies with stealth might prefer going for casters and so forth.

    I don't think it will be all that hard to implement these tactics due to the way that I have made the movement work, as it should work correctly as long as I pass a coordinate to where the enemy should move. The movement system as it is now does work with stacking of enemies, so even if I pass an invalid coordinate it will automatically find the closest free tile to that.

  • Minor update:

    Still working on the tactical combat system, which maybe not surprisingly turned out to be a lot more difficult than expected

    However its starting to work a bit better after a severe overhaul and a LOT of bug fixes and it is now possible to add different strategies to enemies, based on behaviour values, which will/should allow enemies to switch tactics during fight, and even let same type of enemies prefer doing different things, based on these and the type of items they are equipped with.

    Features added:

    • Close combat tactic
    • Range combat tactic
    • System for close combat animation
    • Missile animation for range combat
    • Automatic switching between range combat and close combat depending on whether an enemy is attacked in close combat.
    • Behavioural system for more dynamic strategies
    • Individual equipment of enemies so each enemy is randomly equipped
    • Simple combat text

    Example of range and close combat

    However there is still a long way before this part is done. But next step will be to integrate it into the rest of the game so a very simple version of the game can be played.

  • Finally reached the point where the game is in a full circle making it possible to play through all major parts of the game. Travelling around the world map, entering cities and dungeons and doing encounters. Besides this the following features have been added as well:

    Feature added:

    • Health bars have been added to characters and enemy units.
    • Characters can now perform basic range attacks.
    • Levelling up and experience bar have been added so character can now earn experience from killing enemies and rise in levels and use character points to increase stats or buy skills.
    • First steps of the loot system have been made, which will allow the player to loot any equipment worn by fallen enemies.
    • Weight functionality so characters cant pick up items that will make them go over there max carrying limit.
    • Stats calculation which will allow and calculate bonuses/penalties from weapon and armors and will eventually be hook up to buffs and debuffs from magic effects, consumables, poisons, diseases and potions.
  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • Could you make a gampley video

  • [quote:396w6kt9]Could you make a gampley video

    Unfortunately its still a bit to early I think to make a gameplay video as the game is still in a very simple state compared to where I would like it to be. Meaning that graphics are lacking, there are no sounds and features are still missing. I have mainly focused on coding the game so a lot of things are working and contain 5409 events at the moment. But think it would be sad to make a gameplay movie in its current state as it wouldn't capture the game as a whole yet. When I have added more enemies, implemented some of the skills, ability to cast magic, updated the UI and added more cities and shops to them I will do it.

    However you are very accurate that it feels like a Dark queen of krynn game and is exactly what inspired me to make it.

    But I have just taken it a step further so its also a political or strategy game. Where as in the original games you just had a group of heroes going around solving quests etc. Where in my you will also rule your own kingdom, with everything that it will involve, like making sure there are food and other products for your people, setting there wages, punish criminals and even sentence them to death, trading with other empires. And as you have to rule your own kingdom, you are at the same time under the rule of a supreme ruler, which will have there own ideas of how things should be, that you have to follow as well, and your king which is one of your characters can actually also be sentence to death if you don't please this supreme ruler. However you are not the only kingdom under this ruler which have to live by this, so you can help the other kingdoms in overthrowing the current leader and hopefully things to come will be easier, as the game uses real age a ruler might govern the lands for a very long time, and if you are not on good terms with them it will be a rough time while they are sitting on the thrown.

    So besides just being like Dark queen of krynn I think adding a part like this will make the game feel more epic in scale and give the player lots of different ways of how to play out the game.

  • 5,409 events? that seems incredible.. I've been working on a game over a year and I am up to 487 events... wow, you're a champ!

    I used to love games like Pool of Radiance on the C64 and it totally reminds me of that.. good times!

    Are you using the CSV plugin from rexrainbow? it's a great thing to use for lookup tables and databases..seems like you need a TON of that...

  • [quote:3p6iwc3c]5,409 events? that seems incredible.. I've been working on a game over a year and I am up to 487 events... wow, you're a champ!

    Im not sure, I do spend a lot of time on it and have used C2 for quite a long time now, so I don't struggle to much with most things when I make them, so I can make things rather fast I guess But it also depends on the type of events im working on, a lot of the time I just hook new code up to old code, as I use functions for pretty much everything. but checked the counter just before this post and the last 2 days I have added 229 events working on my new consumable system so the players and enemies are able to eat or get affected by effects from herbs, magic and anything that would cause some sort of buff or debuff, so this required a lot of new events.

    [quote:3p6iwc3c]I used to love games like Pool of Radiance on the C64 and it totally reminds me of that.. good times!

    Are you using the CSV plugin from rexrainbow? it's a great thing to use for lookup tables and databases..seems like you need a TON of that...

    Yeah agree really had a lot of fun with them as well, think its weird that none of the bigger companies have made some of these types of games, but maybe because of the diablo wave .

    Anyway, im not using any plugins, not because I don't like them, but because C2 is updated so often and if the plugins doesn't work with the updates and I have hooked some of the game up to it then I risk having to recreate huge parts or having to wait for the plugin to be updated etc. So its more about having full control and also part of the learning process.

    But I like placeholder objects, so for instant I store most things in actual sprite objects which are then hooked to an owner object.

    So for instant a Character object, can have several item objects bound to it. And when I need to for instant calculate the weight of items that a character is carrying I can just do.

    "Pick Item.owner_UID = Character.UID"

    And that way calculate the weight.

    Dungeons are exported and imported when needed, so when the player goes into a new dungeon it will check to see if they have already visited the dungeon before and if that's the case I import it otherwise it will generate a new one. So I don't really have to keep track of this data, as moving around them ofc are calculated after the dungeon are generated, so whether its imported or generated doesn't really matter.

    Some data like skills, quest description generator, Names for the name generator are stored in dictionaries. And are expanded by simply adding to these and if done correctly the code should "hopefully" be able to just use the data, without me having to add new code.

    Then I use some arrays for my tactical map which keep track of movement cost, but these are generated each turn as they differ from unit to unit. And I use some arrays for each unit to keep track of buffs and debuffs. Which is organised with an "Effect_ID" which is hardcoded, so I can apply an effect to whatever unit I want by just passing this to a function.

    For instant if an enemy eat some herbs that cause it to go into rage, I just call a function with function.call(Enemy.UID, "h18") and then it will make sure that the enemy is afflicted by this effect. And it should allow me as far as I can see, to make it possible to hook it up to both magic effects, potions, disease etc. that are crafted or might have several effects, by simply call this function several times with the correct "Effect_ID" but guess time will tell if that will work

  • [quote:2g0a0cmc]

    So for instant a Character object, can have several item objects bound to it. And when I need to for instant calculate the weight of items that a character is carrying I can just do.

    "Pick Item.owner_UID = Character.UID"

    hmm that's a good idea...

    How do you keep the data across layouts? global variables? Like if you were to go to a character screen, where do you store the player's attributes and how do you access them? In a combat layout you probably need access to that same data. How do you transfer it without using a global table or array?

    I guess I hadn't thought of C2 not supporting a plugin.. that would be bad.. that CSV plugin makes life REALLY easy, since using arrays is a little cumbersome in C2. Or rather, not very descriptive.

    With the CSV plugin you can just refer to columns and reference the row by ID....

      NAME   HEALTH  AC  GOLD
    1 Harry    50     5  201
    2 Zorn     30     8  0
    3 Kaz      80     5  25
    
    CSV_table.At("HEALTH", str(Player1.ID)) [/code:2g0a0cmc]   //  ID is the first column without a header.. so if ID is '1' it will return 50
  • [quote:1n1e3pdp]How do you keep the data across layouts? global variables? Like if you were to go to a character screen, where do you store the player's attributes and how do you access them? In a combat layout you probably need access to that same data. How do you transfer it without using a global table or array?

    The game it self is split into several areas, that differ so much from each other that only very few objects needs to be present at all layouts. For instant the global map where you move your party around in a big group and travel around the "world" is also the place where caravans, city trading and global events takes place. The dungeon area is a dungeon crawler and it will pause the global events, then the tactical combat is whenever the player encounter something and where fighting and everything like casting magic etc. takes place. So I really only need to keep characters and there skills, quests and the items they are carrying global and they are just done by making the objects global.

    Some of the things are created for certain things, for instant in the tactical map the characters that the player moves around are just dummy characters that are linked to the actually characters and all stats modifications like weapon bonuses, buffs etc are gotten the same way as items are linked to a character through a "Owner.UID" and when the fight is over they are just destroyed.

    The same with enemy items which are created along with the enemies unit. So even though it might seem like a lot of objects there are rarely a lot active at the same time.

    [quote:1n1e3pdp]I guess I hadn't thought of C2 not supporting a plugin.. that would be bad.. that CSV plugin makes life REALLY easy, since using arrays is a little cumbersome in C2. Or rather, not very descriptive.

    I don't know if its a big problem or not, but I just want to be save. But not a huge fan of arrays my self. However there are some very nice features with them that I like, such as "Array contains" which makes checking stuff really easy. But it seems pretty good from your example so will check it out.

  • nimos100

    This is very impressive, I think you have the largest gameplay made out of C2. 5049 events was in June, so how many events do you have now? How long have you been working on this?

  • nimos100

    This is very impressive, I think you have the largest gameplay made out of C2. 5049 events was in June, so how many events do you have now? How long have you been working on this?

    Well...hmmm

    At the moment its on 5657, but I haven't actually worked on it for a long time. So whether I will continue with it or not im not sure of. As with most projects as you probably know yourself, when you get more and more experience working with C2. You notice things that are made in very bad ways. But due to the way you original designed it, it can be very difficult to redesign. And also new features are released with C2 that at the moment could have help you create a better design. For instant I was working on the tactical combat part of the game, and was having serious problems with the path finding behaviour as it had a lot of limits to it and actually didn't work very well for something like this I think. So I had to make a lot of workarounds that was really messy, and most likely filled with bugs etc. But now you have so you can regenerate obstacles etc around certain objects. Which would really have made a huge difference.

    So if I should continue on it, I would most likely just reuse the graphic and create a new one from scratch instead, I learned so much from doing it, especially because you cant avoid running into problems and also working on a huge project like that, really make you see and learn where problems occur when having to organize something like that. And I really would hope that C2 had better tools for that, as it really falls short when it comes to such size programs I think. As you can imagine how it is to find a specific function between 5600 events even if you have good organisation, is not easy

    So a simple feature like being able to Ctrl+Left click a function call to jump to the function it self, would be a gift from God

    But understand that they prefer adding stuff that benefit the masses, as the majority of people probably doesn't create game with so many events.

    But anyway at the moment im working on a strategy space game kind of like X-3 the old ones, where you have to survive in the universe, by building up a company with space stations to produce varies goods/resources that can be traded with other stations, mine for ores, buy or build space ships, and engage in hopefully huge battles. So its more like a choose what you would like to do kind of game, so if you prefer to be a pirate or having a huge trading empire or maybe just conquer the universe you can do that.....well at least that's the general idea

  • good game dude

  • good game dude

    Thanks, unfortunately the game is dropped for now and only the idea remains, but hope to pick it up again sometime

  • Wow, such a game idea. I'd love to see it in completion.

Jump to:
Active Users
There are 1 visitors browsing this topic (0 users and 1 guests)