Friday, 7 June 2019

Overcoming Shortcomings With Creativity

Since my last post I decided to try and attack what I felt would be the hardest thing to accomplish, the wheel menu system.

Fortunately I realized after a bit of pondering that I did something similar when I made the start menu for CatAttack!!!



My solution was to create an animation for each of the possible rotations, start and exit. Doesn't look like much (right now), but it works the way I need it to. A state machine will be used for each of the possible animations and the accompanying logic that each selection will have to do. It's not fully set up yet, but since I've done something similar before I don't see an issue.


The next task that needed to be done is an inventory system (this turned out to be a lot harder than the wheel menu).

While there are a quite a few drag and drop inventory system tutorials on the net, I wanted one that would operate somewhat like Tetris (uneven “blocks”) and would function easily using a controller. This was quite a goal that I had set for myself, and after spending days watching/doing tutorials on arrays and matrices I came to the realization that it's going to be a while before I have a working understanding on how they operate and how to make them do what I want. Being the impatient artiest I am, I decided on a workaround solution using the knowledge I already have and understand.



So the first thing I needed to solve was grid based movement. Thankfully there are quite a few tutorials on the subject and I managed to find one that gave me enough framework to build upon (the red cursor moves smoothly between 64X64 tiles).



The second issue was grabbing items in the inventory and having the player decide what to do with it via a button press. The solution was an easy pop up menu that would ask what the player wanted to do with the grabbed item, animation and logic controlled by a state machine.

The third and most difficult issue was instantiating these irregular blocks onto a grid. This is the part were I spent days looking at array tutorials. My solution was forgo the array for now and spawn the item in the top left corner, then to create a “track”, have the item travel around this track looking for a free spot using raycast to detect area colliders on each item. This is horribly inefficient, but dose the job. I haven't inserted this framework into my MVP yet so it is possible my solution will fall apart when trying to actually integrate it. But I'm positive I can overcome it with my bubblegumnojutsu.


Anyway I bought some Godot tutorials on Udemy. I'll probably spend the next few days doing tutorials and reinforcing my foundations as I try to integrate the inventory system into my MVP.

Monday, 20 May 2019

Plow and Hoe

Sometimes I'm thankful that I don't have any followers. Looking at my last post I have to say its been a while.

Alright, so I've been slowly working on the MVP for the “farming simulator” I mentioned last post or so. I still have a very long way to go needless to say.


So far I managed to work out the issue I was having with isometric tiles. Although I haven't made anything but the grass tiles, but I don't think there will be any problem with more ridged designs like bricks or cobblestones.

As you can see in the picture above I have a basic UI layout. The upper left will be a status window. I've decided to rework it so it can show followers and pets (ie:party members). Not sure if I'll condense it in the corner or have a more on the side layout, I'm trying to keep the UI generally out of the players field of view. Sizing can come later I guess. Nothing is functional on it yet.

The upper right has the clock. Its just a prototype right now, I defiantly want to polish it later. I have it animated and the idea looks decent. I've also been practicing with a color filter that goes over the screen space to show light gradients. I think I'm going to make the days 15 real world minuets and may have to break up the animation for the clock in parts as Godot only supports animations only so long. At least that was v3.0, I just upgraded to v3.1 so I'll have to check if it supports longer animations. Even if it doesn't I don't see a problem breaking up the animation cycle and linking it in code.

And on the lower left is the quick slot bar (well I kind of made it look like gears). I plan to make this game primarily focused on using a hand held controller. I thought about giving it mouse support like in Stardew Valley, but ultimately decided that I wanted this game to play more like the old Harvest Moon. I don't have any programming done on the “bar” yet but what I'm trying to achieve is a place to allocate items that are not equip-able but will be used in certain areas (ie:having seeds in the active slot will allow you to sow seeds on tilled soil or have an option to give gifts to NPC's). The default button layout will use the L or R buttons to rotate the gear and set an item on the wheel to the active position.

The lower Right has nothing so far, but I may put an active equipment (like tools or weapons) Icon there.

I'd also like to make a ring menu system like in Secret of Mana. That will be an interesting challenge.


Getting back to the tiles, I had to work out a solution to show soil when the tile is “tilled”. Godot's auto tile system doesn't really work well with isometric tiles (at least from what I could tell) and I don't think I can have complex data in a tile manager. Thankfully I managed to devised a walk-around using raycast and area collides. It took me 3-4 days but now the tiles transition properly from grass to soil.


Anyway that's it for now.

Sunday, 30 December 2018

X-Mas Break 2018

Hey all. Its been a while since my last post so I figured I should do an update post.

As usual the winter saps me of my strength, both mental and physical. I'll spare the details, but needless to say I've been epicly unproductive.

The above statement is a little on the glass half empty side as I did manage to devise a workflow in creating isomeric tiles. The main issue I was having was with getting the alignment so seamlessly mesh together, but I solved that problem with a pretty simple grid in layer groups to help me offset things properly.

Another problem I faced was with layer masks, but thankfully the latest version of Gimp supports layer masks for groups which is going to make my life a lot easier since isometric tiles don't conform to typical standards. I still haven't put it to the test, so I'm going to hold off the party poppers. But I'm pretty sure it's going to work out when I get off my ass and do something with it.

During the break I've been trying to make simple stuff like the UI elements. I'm hoping to have some rough drafts of the basic HUD before the break is over.