Witchcrafter: Empire Legends

Wow! It’s great! :smiley: Thank you very much :wink: This is nicely done and animations aren’t interrupted, I will add idle animation at the end and it will be awesome!

1 Like

Hi :wink:

Regarding attack, it is completely redesigned, thanks to @TheKing0x9 ideas, still uses lock, but in a smarter way and animations looks smooth as a shoe shine. And I also care about the sword position - if it was sheathed or handled before next animation is played. At first I was using many scripts for functions like animation or movement under go representing the hero, but for now the more convenient and clearer way is to buck functions into lua modules and use one script for the hero. Monsters gets damage and a label above is updated,

There will be implemented day/night cycle. And it won’t be only about lighting. It is a very useful mechanism that allows for a deeper immersion and engage players to care about the protagonist at night, especially because there will be more dangerous monsters, ghosts and phantoms. And Estel will need to sleep. Imagine a situation when the tired hero stucks in the dark wood and he uses the magic to create a barrier out of stones and mud to protect him against beasts while he could sleep a bit. Now the lighting cycle is handled by a render script that utilizes lighting render target by setting BUFFER_COLOR_BIT, and again, many thanks inter alia to @Pkeod shaders and @ross.grams render scripts! :wink: What I’m dreaming about is to add normal maps to sprites, but now it’s out of my range. Anyway, it’s a great effect to see light at a dark night :wink:

Interesting was the process to adjust color of the ambient light. I experimented with some vectors at a specified time like morning, afternoon and evening, but to create a smooth transitions I fitted polynomial function of each RGBA value :smile:

alpha_during_daynight_cycle

19 Likes

Amazing work! Love the visuals :slight_smile:

2 Likes

Hello!

I was working on dialogs and meanwhile, I released Defork :smiley: So hope, it will help you too! :wink: I added FSM to handle dialogs input using dynamic gui table with different amount of options to choose. I also decided to use short option text, that is extended when Estel is saying it actually - I hope it is more natural and easy to control conversation without reading a vast amount of text only to choose the best hero’s answer.

Many choices will be relevant and I’m working on a system to manage and save decisions data, that will store relation between each NPC and Estel, NPC’s dialog nodes and decisions. Creating such nonlinear story is very time and brain consuming :face_with_head_bandage: If you have some suggestions or advices, feel free to share! :blush: My brother is helping me with a scenario and he has a lot of ideas, as he’s a writer :face_with_monocle: We are collaborating on writing missions and I’m taking care about logic connections too.

Don’t know how the project will be updated in the nearest future, because next week I will become… a proud dad - of two sons! :smiley: At once :smile: I think this new role will consume a vast amount of time :smiley:

BR, Paweł

17 Likes

Hello and Happy New Year! :partying_face:

It was an exciting year behind us, I’ve learnt a lot about the engine and game dev, a lot of things happened in my life :smiley: It is also very exciting to write a first post in 2019 about my project :star_struck: (of course I’ve prepared it earlier :stuck_out_tongue: )
In December I’ve completely refactored the code, tidied up everything, made it more readable, tried a lot of things and still trying to optimize and polish my gem. Mobs are very generic now, so I can easily create diverse instances. Hits are based on collision triggers. The biggest change was to replace all the movement and collisions system with @britzl’s Platypus. I suggested inclined slopes that are working great now, so thanks again :smiley: Take a look at a little demo:

Estel can now jump, bounce from walls, walk on diverse grounds and even attack in the air! :smiley: Attacks are scheduled and player can perform a combo easily, but still the clicking rage is tamed. I think, combat is much more dynamic now, so I’m trying to redesign my first thoughts about Focus board for spell casting. Turn-based combat is very popular and comfortable on mobiles, thus I do want to implement puzzle mechanism to perform fight, though it would be optional. Normally, the combat will be real time, but when Estel enters a strange dimension or a singular state of his mind the time drastically slows down and stops, so he can literally Focus on performing a breathtaking attack! :smiley: It will be up to the players which way is better or more suitable for a situation - I wish to make this game convenient to play vertically, with one hand even :wink:

I am glad about the progress and this dev diary and forum helps me with a motivation a lot :smiley: I hope this year would bring us all great ideas, implemented in Defold and shown to the world! :wink:

Happy Defolding in New Year!

11 Likes

Hi!

So, in the last month I completely refactored the Focus board - a linker type board to collect elements used to craft magic spells. I spent a lot of time on new scripts and graphics and I hope the effect is visible at the glimpse - what do you think? :wink:

Old vs new:
board_comparision

The fascinating thing about the Focus board is its complete encapsulation in GUI! Every block is a cloned GUI node and everything is in GUI, so it is not influenced by user’s screen, hero’s position, camera, etc. And I can display the board in game, while the background is the level collection. It is even properly displayed on an Android smartwatch :smiley: Take a look:

So, when you will ask on what other device can Defold game be launched - here is the answer! :smiley: It is even possible to play the game, of course it’s difficult though :smiley:

Next big thing, I’m working on is magic. Yeah, I’m preparing a cool witchcrafting system where elements can be conjured using different carriers and with different modifications. Everything to engage in the process of creating a spell. Defold particle fxs are used here and effects are exciting for me, though it is an initial version only - what is your impression? :wink:

So, a gameplay is now like this: hero enters Focus mode which pauses the game and the Focus board appears. You can take your time to accumulate as much energy as it is possible on a linker board in limited turns, taking into consideration conditions like weather, environment and mob’s weaknesses. Then you can select one or two basic elements that will fuse into another element. Then you are able to cast a specified element’s spells by pushing it forward (like flamethrower for example), swirling it in a powerful tornado/flamenado/waternado and so on or many other.
If I could ask for a help from our small but engaged community - what do you think of those game design ideas I’m trying to consider regarding casting spells:

  • Turn based - select a card and then play it automatically on a closest mob immediately after a Focus mode (pause mode)
  • Gesture based - have your element energy cumulated and use it later at will while casting spells with gestures (e.g. swipe right/left to throw a fireball, hold a mob to set it on fire and so on)
  • Button based - have your element energy accumulated and use it later at will by clicking/taping on the spell’s button (few for each element would be available at once, probably choosen in Focus mode)

0 voters

And I’m getting back to creating those powerful effects :wink: May Deforce be with you!

11 Likes

Ugh it looks so juicy, give us the demo already :smiley:

4 Likes

Super cool!

Perhaps it’s possible to detect “watch mode”, and display a 4x4 board instead?
Will probably be trickier to balance the game perhaps, but still :slight_smile:

4 Likes

Love the fire effect!

2 Likes

I will surely die if I wait for this any longer. Give us something to play, play and play. :wink:
Great to see the development, just waiting for the first release.
May the Deforce be with you too.

2 Likes

Thank you all for your feedback! And please vote if you didn’t :smiley: @Mathias_Westerdahl, I’ll put a smartwatch version in the corner of hope of the backlog :smiley: I want to play it too, though it is not so simple, but I’ll do my best to prepare a demo, so maybe I’ll gather even more feedback from you :wink: This is a great motivation! You’re awesome! :smiley:

2 Likes

thank you so much! :grinning: :+1:

1 Like

Hi! :smiley:
I know some of you would kill me or themselves, when I will announce I still can’t drop any demo :smiley: But I have to admit it :confused:
tl;dr: I had many troubles with creating a correct mob’s AI, but hey, there is a juicy battle right around the corner’. :wink:

I tried many times and there where many iterations and refactors. What I would like to share with you is to remember about the scope of variables! Imagine that I wasted an enormous amount of time on finding out what’s wrong, while I was overwriting the id I made local in the script of one GO and I had multiple instances of this GO in the level. Why? I didn’t realise that, when I write

local id = nil
function init(self)
   id = go.get_id()
...
end

I actually overwrite the id that is local for all instances of this script in any new instance’s init! I know it looks stupid now and I should use self.id, but just for my convenience I used id because it was way easier to just use it in any function of the script not caring about passing self.id anywhere. Debugging it took a lot of time and I couldn’t find the cause of my problems because I was suspecting anything, but not this. I just, I had to complain. It might be useful information for someone someday :wink:

So, forgive me once again, guys :worried: Raising newborn twins, working full time in ICT, dog walking and caring about a new home with my wife is so time and brain consuming, that I’m only able to code in very short periods, often during communication :sweat_smile: That’s why I make small iterations and trying to keep code as clear as possible, while actually still learning Lua and Defold :smiley:

But to sweeten the expectancy I must share this new AI behavior with you :relaxed: Let’s checkout how a basic paw-armed mob tries to kill our protagonist! :scream:

Notice the new GUI, there is a health bar (red), xp bar (yellow) and inside the orb there is a choosen element - the size of the particle fx and icon depends on amount of Elemental Energy. There are control buttons also and the button below a fireball stands also for the Focus board, when the EE is 0. When you’ll charge it again with some element it changes for a proper spell - like fireball here. I hope you’d like it and I’m hoping for feedbacks :wink:

So another useful informations for Defold users would be to describe FSM I used to control mob and collision objects of mob used to detect, if hero enters mob’s FOV or range of attack. I used self.state and self.new_state to change only the second variable and check for an inequality between them in update function, so for every state change I can perform different tasks only at the moment of change, because I save new_state to the state there immediately.
In every state I enable or disable proper collision objects and listen to Trigger messages that are sent on collision with hero once, either at enter or exit. Or to Animation Done messages for example. Again, I perform there different tasks and state changes, so still everything is pure and readable. It is very crucial in that kind of huge project I’m working on alone, so I give special attention to refactoring and design rules.

The damage is sent to each other at the end of animation, but it will be changed when there will be animation cursor exposed, because it will, as @britzl said:

so I’m keeping your word :smile: Then I can check for a proper moment of animation to trigger attack collision :wink:

I don’t want to show anything that could discourage you and you won’t give it another chance, as we all know that the first impression is crucial :wink: As soon as I will complete at least this basic battle behavior with interactive mobs including using some magic and (most voted) buttons for spells aaand it will be tested and playable, I will post a demo :smiley: As polish studios usually says, it will be released, when it’s done :sunglasses:

Cheers!
Paweł

8 Likes

your game looks so good! No pressure, but the UDGJ jam is a good opportunity to ship a first demo :stuck_out_tongue:

4 Likes

Actually, I was really thinking about it :smiley: I even wanted to ask if it is acceptable, because it’s not the work of the last week, but I would like to definitely design a boss battle, that I’m lacking right now :smiley:

5 Likes

Reply from the UDGJ thread.

Then I allowed users to pull up a Focus board infinite times, because I wanted you to see all the spells. Normally it would be restricted to pull out only when you burn all the energy accumulated.

Is that much of a restriction? It seems to me the player can simply waste the energy by casting spells without a target.

I was thinking about even create another restrictions that would balance the amount of the elements on the Focus board depending on the environment - for example in the freezing mountains it would be almost impossible to “focus on fire elements around you” because there will be simply a lack of fire blocks on the board. So, one solution would be to take fire (torch) with you. Or take water bottle to the desert to use water spells. What would you think about it?

This sounds amazing! I’m a fan of a water mage being almost useless on a desert, but of course you have to make sure a player doesn’t easily get himself into a nigh unwinnable situation because of the way his character is built. I’m not sure about the torch/water bottle thing. Seems like any source you’d be able to take with you should be snuffed out by any weak spell. I guess it depends on whether your magic system follows the law of conservation of energy. An amulet or something might be better for that purpose. I guess it all depends on how the balance shakes down.

2 Likes

I’ve played around with the game a bit more with my niece (6 years old as of today exactly) and checked out most of the spells. Really nice effects! And destructible environment is always a plus in my book even if (or maybe especially when?) it doesn’t affect gameplay.

What I’m wondering is how is it roughly intended to play out - in this demo you basically have access to any type of spell at any time if you take the time to play with the focus board, which pauses the game. Is the plan to have the player specialize with a certain kind of spells or to be able to switch them at some predetermined places, or is switching/recharging just meant to be a lot harder eventually?

2 Likes

Yes, the main reason for this is I didn’t balance the game at all. It is all just like it was feel to be ok. Then I allowed users to pull up a Focus board infinite times, because I wanted you to see all the spells. Normally it would be restricted to pull out only when you burn all the energy accumulated. Normally, as it is intended to be an RPG, Estel will learn spells one by one. I’ve already implemented something that could be perceived as an upgrade system with unlockable spells - I’m testing and developing it :wink:

I was thinking about even create another restrictions that would balance the amount of the elements on the Focus board depending on the environment - for example in the freezing mountains it would be almost impossible to “focus on fire elements around you” because there will be simply a lack of fire blocks on the board. So, one solution would be to take fire (torch) with you. Or take water bottle to the desert to use water spells. What would you think about it?
(If you want to dive in - the world is created out of elements, and witchcrafters are able to control them in the area around them, for example pushing air elements in any direction, drain water elements from wet or humid objects, etc. - a little bit crazy, but based on an old alchemy that was actually overthrown by Lavoisier so late, in 18. century!)

Destructible and interactive environment is what I want to implement so much! :smiley: I want every object to be burnable, maybe pushable or affected somehow by wind. I want to make objects wet and then freeze them. I want fire to be ceased during rain. Maybe even grow plants by watering them :smiley: But all of those are dreams, that I would eventually implement, but the release would be then in late 2080’s :stuck_out_tongue: But that’s indies privilege and that’s why indie games are awesome! :smiley:

4 Likes

Yeah, so to clarify this dev diary a litlle bit I need to update it!

There was a jam! And I posted a demo and description on itch.io as my submission! :smiley:
For more information you could follow the UDGJ#1 thread :wink:

So, you could be pretty up to date with changes I was making :slight_smile: Right after the jam, there were also introduced the great change to the engine - adding control over flipbook’s framerate and cursor allowing me to perform amazing effects I was thinking of from the beginning.

But now it’s time to refactor the quick and dirty code I wrote in a rush to create a demo to publish :stuck_out_tongue:
I analyzed LowRezAdventure by @britzl and it allowed me to create separated modules responsible for functionalities like movement, keyboard controls and animation. Now I’m working to tidy up the combat and also separate it to the module. I’m creating instances of those modules for each GO like the hero and enemies, so it’s now closer to Enitity Component System. And adding to this a Finite State Machine responsible for taking care if everything is as planned an there are no bugs where you can perform something that is forbidden at the moment, everything looks now professional and I’m glad, because I can easily now implement things, add features and find bugs. So I sincerely recommend to not reinvent the wheel and follow proven and verified patterns and solutions :wink:

To summarize a feedback from the jam, I would like to politely ask you to help me decide which solutions would be better:

Select multiple statements that you consider are true:

  • Focus board is a bad idea and slows down the pace
  • The board allows to focus on puzzles, and rest from the battle for a moment
  • The time while focusing should slow down instead of stop, to create a pressure on a player
  • Player shouldn’t be able to pull out Focus board anytime, but only when EE is 0
  • Player should be able to pull out Focus board at will, but there should be max EE restriction
  • The amount of elements gained is to high
  • The amount of elements gained is to low
  • The rules of gaining elements energy was clear enough
  • The rules were unclear and it was hard to figure it out
  • Enemies should be tougher
  • Enemies should jump to
  • The boss was too easy to overcome
  • The boss was hard to beat, I couldn’t figure out when to hit him
  • The sword was irreplaceable and I used it the most
  • I enjoyed combining spells with sword attacks
  • I would like to mainly cast magic spells

0 voters

And some more suggestions, regardless the demo, but more focused on the future of the project:

  • The best approach is to allow users choose the way to play - either sword or spell fights, and then upgrade those
  • The combination of spells are awesome (water can extinguish fire)
  • The interactive environment is great (e.g. burnable bushes), add more interaction for objects
  • The spells interactivity with each other and environment is needless
  • The hero should be more lively and climb like an assassin
  • The hero didn’t need to climb at all, let’s make a closer camera cut and make it more personal
  • The hero didn’t need to even jump at all, static gameplay could be more controlable
  • The dynamic combat is ok
  • The combat could be turn-based, so a player can focus on creating spells combinations
  • It is better to design for PC and browsers (keyboard+mouse)
  • It is more suitable for mobiles (touch control) - vertically, with two hands on screen
  • If on mobile try to allow to play both vertically and horizontally
  • It could be awesome with a pad in hand (consoles)

0 voters

If you think of any more suggestion on how to direct this game, feel free to write it down or PM me :wink:

Haven’t played the Jam demo, but I’ve seen Oleg play it. I don’t know how are you going to handle that but it looked like current focus system makes player unbeatable. I’d suggest to make those runes in Focus board a collectible as drops (killed enemies or chests/ pots). Taking it forward - certain enemies drop certain runes and that gives additional challenge to manage which use and which to save for later.

1 Like