I didn't really have time today so I just made some visual changes. I tried the unity tilemap and it's gorgeous!
Art comes from opengameart.org
I have to find out how to add colliders so it feels more plastic, right now you can just walk over anything. I hope there comes an update where you can define colliders per tile that get painted together with the tiles.
Inventory submenu is really coming along.
I added a singleton for the inventory because it is easier instead of typing PlayerController.player.inventory all the time.
It is possible to discard items but only one at a time, I want to implement a long button press to discard a whole stack.
Next up is applying effects to weapons and armor and mixing ingredients
changes:
https://github.com/Papiertig0r/Alchemy/commit/b8255c36f3a3086301048330e5143a50731f7486
Today I refactored the state machine, it is smoother and inputs are now where they belong (except for the normal world state... yet)
Also, I added some more functionality for the inventory submenu, but it's not quite ready yet :)
no visual changes, so no gif.
see changes here:
https://github.com/Papiertig0r/Alchemy/commit/6e4bd9d5fa746882978922cfd8e7c4c7ebc5f4b3
Today I didn't feel like implementing functionalities so I played around with two concepts: collider and rigidbodies (I like the thought of pushing things around, but it was rather glitchy so I branched it away and now it can rest)
aaaand a map! but I didn't like that either (tiled is something I need to learn but don't want to)
so I went back to implementing functionalities.
I added the infrastructure for the inventory submenu
no visual thingamajing
End of day 28 and you can add an ingredient to a tool. wow xD
I spent most of the day refactoring and made a bunch of changes
e.g. a statemachine that controls the purpose of the action and dodge/abort button
also custom comparation so that items will get stacked only if they have the same values
I had a point in the day where I wanted to delete everything and start anew, but I could hold myself back. Sometimes you got to push through - and that is hard!
See the changes on my github:
https://github.com/Papiertig0r/Alchemy/commits/master
(I've also begun to break up commits into smaller parts)
I added some further info when the inventory is open. As you clearly can see in the gif, I ain't no UI designer, but it does the job.
Next up would be showing effects and buffs too.
There are quite some kinks to work out, but I'm sure I can do it :)
(e.g. when inventory is open you can still throw things, but you throw the thing you last selected in the hotbar, not the current selected thing - same goes for consuming items. I want an additional menu shown for when inventory is open so I have to implement that too)
I just thought of something I should probably address soon:
Currently when you process an ingredient and pick it back up, it will get stacked with other unprocessed ingredients, thus removing your progress. You can also pick up unprocessed ingredients and they magically get processed when you already have one processed one in your inventory, I need a custom comparation operator to fix this.
Now after implementing the inventory I recognized two bugs I'm going to fix tomorrow:
hopefully, I can implement more functionalites than just fixing two bugs :)
I wan't information on screen for Items as well as a submenu when accessing items from inventory instead of hotbar
I took a day off planning because I had some problems:
Buffs could be
a) single use (like damage or healing)
b) applied and after a certain time unapplied (like health regen or a speed boost) or
c) applied every few seconds until time ran out (like posion)
BUT
ingredients had only one trait (concentration). I am not willing to have up to three possible variables and only giving the player one of them, so I had to rearrange
After a chat with @kommiwhat I decided to implement three traits per ingredient:
Concentration, purity (or quality) and yield.
in a single buff, all three will add to strength
in a timed buff, concentration will add to strength, purity and yield will add to duration
in a repeated buff, concentration will add to strength, purity will decrease repeat time and yield will add to length
of course tools will now influence different traits (distill increases concentration but decreases yield)
also I thought about mixing ingredients and I think, it will average the concentration and add their yield (not sure for purity though)
all in all I'm on the right track
I branched from my current state to work on buffs and not fuck everything up
So far so good, maybe it's missing some abstraction levels, but it's doing what it's supposed to do :D
again, no visualization, so no gif.
changes:
https://github.com/Papiertig0r/Alchemy/commit/8bca49f30efc171aca3fc2431eebe05761cf3c5d
I tried implementing poison today, but it is not possible with my current system, so I'm going to take a think break tomorrow and then implement a new system. I'm going to refactor it and delete a bunch of old stuff (maybe I even branch on my git :D)
I'm also thinking of refactoring inventory handling.
right now everything is so convoluted, very hard to get into.
see the changes here:
https://github.com/Papiertig0r/Alchemy/commit/421feb1d946e89c5532a2670a3eb01ec41e53e1d
no visual thingy so no gif
I implemented consumables, though I am not happy with it.
They have a reference to a scriptable child of a buffing parent class and I have to implement a subclass for every stat that is buffable. I think I'm going to use reflection to smooth this over.
Consuming items is only implemented via inspector, so no gif.
Take some tasty changes instead:
No user interfaces, but interfaces nevertheless.
Now it is possible, that even enemies can throw weapons. The same system could be used for spells etc.
Area of effect is still missing, but I'm inching towards it xD
See the changes here:
https://github.com/Papiertig0r/Alchemy/commit/fb9963ae2de2ffc10198b98d5072474d94b48639
Literally. That's what I implemented today :D
First I adapted my inventory, now it feels really good (code base side, still no UI yet). You can pick up things and they get neatly organised into stacks. I have to create some items so I can test with them, but I think it's working fine.
Also you can now throw things! huzzar! Throwing things has no effect right now, but that is the next step! (Throw healing paste at your enemies to restore their health! xD)
See changes here:
Finally you can make some damage!
I added an attack animation and pixel blood particles as well as some methods and callbacks to handle damage etc
blood particles were too small but I changed them after I made the gif (note to self: make gifs when wrapping up)
Also, stats are now scriptable objects
See the changes here:
Todays changes are a bit random because I haven't had much time. I implemented some basic stats, I prepared an animation for the enemy attack and I inherited the player controller from the chara controller, so it's a little bit cleaner. Some minor changes included, too (not too shabby for one and a half hour work).
See the changes here:
https://github.com/Papiertig0r/Alchemy/commit/acd9...
but nothing visual, so no gif!
Producing content is so much easier :D
I did a lot of work today.
First I pulled some sprites and created some animations for idling and walking. Then an enemy controller (which I later abstracted to a CharaController (which I will later inherit from for the player, too)).
An enemy now has an aggro range (green circle). when the player enters the aggro range, the enemy will follow the player until the player exits the aggro range.
An enemy also can be tethered to a spot (white circle).
However, I have a bug I don't know how to fix!
In Unity you can mirror animations but if these animations are sprite based, the property has no effect. So Icheck if input on x axis is greater than 0 and flip the image accordingly BUT when you release the axis, it defaults to one direction
The line
spriteRenderer.flipX = translation.x > 0f;
is responsible for that behaviour. If the direction button is released, I want to retain the current flip state (I can do this with an extra bool, but there has to be an easier way)
See the changes here:
On the bus drive home, I had some ideas (although beeing rather sleepy)
First of all I deleted every single UI object I had and I'm going to reimplement it only when absolutely needed - or at the very end :D It was too convoluted anyway.
I refactored some part:
-the inventory, I don't know if I'll stay with an itemSlot system or if I just add every item to a single row List and sort it from there (which I would prefer but I don't know how to do that exactly)
-I made Effects a Scriptable Object so they would be shared amongst the various ingredients and also so that I can create them from within unity
Lastly, I upgraded the player controls. I have finally decided to use support controller only (for the time beeing) because it feels much better.
The next days I'll use for setting up some animations in the controller (to resemble attacks and dodges I'm going to set up) as well as implementing some enemies so that combat can begin.
Doing something everyday is hard but also rewarding. There will be phases where you don't think you can do something useful. Push through.
See the changes here:
I'm not happy. I'm not happy at all.
Doing gamedev every day is hard, especially when you loose your guiding thread.
But I guess, I ougtha pull through, eh?
I think of doing some content work (I know, it's not important, but at least you see some progress) and I'm going to work on some editor functionalities.
I really need a task board or something.
See the changes here:
is the mother of every product... or so?
I wasn't particularly fond of my last submissions so I decided to not program anything but rather spend some time in planning until I know what I want to the fullest detail.
Also, I decided to delete all the UI stuff because it was getting pretty convoluted and concentrate on the mechanics. When I know how the mechanics work, I can reimplement UI
When I had to guess, I'd say I lanned about 50% done and I'm happy with the results, planning makes thing so much easier.
No changes today, no github link
Oh man, I'm getting more and more unproductive - I think I havent planned enough so I'm going to spend some time planning and writing down what I need to do, then ordering it after priority
Nevertheless I implemented some gameplay elements, an ingredient has a concentration and can now have multiple effects, these effects have a concentration at which they work the best and so on :)
See the changes here:
Did only small things for better readability, can't wait to work on mechanics again (hopefully tomorrow!)
but now there is a context sensitive button system, yay
No visual changes today, so no gif
check out changes here:
I did only minor work and it still took me one and a half hours :/ not happy with the speed
I want to implement mechanics! Also I'm thinking of changing to Scriptable Objects for Ingredients, Tools and Items.
Also, I need to find out how to prevent Canvases from overlapping (I want the inventory to find the best space where it occludes neither the toolUI nor the player).
Also, I want a Custom Editor for Ingredients because I'm interested in the topic :D (I have a few ideas).
Check out the changes here:
https://github.com/Papiertig0r/Alchemy/commit/63e8...
p.s: the Tool UI in the gif now stays with the tool, I changed that after making the gif
Also: Progress bar of the tool just fills over time, no actual meaning behind it (hopefully this changes tomorrow)
I implemented Ingredients and Tools. Add an ingredient (e.g. a herb) to a tool (e.g. a mortar and pestle) and you can change the attributes of ingredients (well, almost, there is no actual logic for changing attributes but all the containers are ready)
Missing is: Tool UI, UI interactivity, some proper attributes and an Editor for phase transitions (currently it's with lists of custom container classes)
No gif today because you can't see the changes xD
watch them on github instead:
I'm excited to see how far I will make it
I'm trying myself on an action-rpg with alchemy much alike to the Atelier series.
For the battle-system I'm thinking of secret of mana (or Star Ocean 2), for the alchemy system I'm imagining the mechanics of Big Pharma and the Style of Morrowind (Elder Scrolls 3)
I implemented a moving character and you can 'pick up' items (not really, they just disappear xD")
See changes here: