Sunday 28 July 2019

Project Mega Max

Project Mega Max

Since my last post I've been continuing work on my personal jam project I code named Project Mega Max.



As you probably have already guessed it's heavily inspired by the Mega (Rock) Man series.



I managed to get most of the animation work for the PC done except for a take damage animation and a death animation. I've also noticed quite a few areas on the model that “need” to be fixed, but I'll forgo that for now and just keep working with what I have. I'll likely just cheese the hurt and death animations by using the frames I already have and use particle systems and the animator to represent the damage that I would like to animate eventually.



The first enemy is almost done, it attacks, patrols and re-spawns on death. It still needs defense logic. As you probably already have guessed it's pretty much modeled after the hard hat enemy in MM. Although not going to make it exactly the same its logic will be similar. I have a heavy cannon robot that I haven't animated yet and still have to model/rig a flying enemy and the boss. The heavy cannon bot will act similar to the first one, but will be bigger, slower and more powerful. Will likely make it shoot an AOE bomb.



I also plan to include component damage that will be represented by clothing destruction. I'm thinking of making it so the player takes component damage when health is 50% or lower. I was planing to have this mechanic be random but for simplicity sake I'll make it progressive damage will start at and will follow in this order chest-pants-boots-head gear. The chest and pants will be considered “armor” after they break things that will affect performance like boots and head gear. I'm still experimenting in my head how this should affect gameplay as changing too much could infringe on the design too much. I may just end up leaving it as a “two health bar” system.

The HUD has been partly animated but no real logic has been implemented yet. I still have to work on some tiles as the ones I made are kind of bland. Still haven't done much in FL Studio.

I've decided to just let my web hosting expire as I'm really not using the website anyway, my domain names are still good for a few years anyway and I can always just point them to my blog. The web hosting won't expire until the middle of next year, so I'm being a bit pre-emptive.

Day job is still consuming most of my free time, so delays and long pauses of inactivity are to be expected at this point.

Sunday 30 June 2019

Personal Game Jam

Sometime at the end of last week I decided that I wanted to try and make a short one stage game from scratch. While I didn't set a specific time, I was hoping to be done by the end of this week (which obviously isn't going to happen).

I nearly finished the main PC though.



Some seam ripping, texture painting needs to be done and some alternate outfit variations need to be modeled to represent clothing destruction. Even though she nearly took a whole week to make, I'm still surprised how fast it went compared to my other projects.

I also managed to craft two unique enemies, I figure I need at lest one flying enemy and a BIG boss for the end for the stage.

Another thing I need to do is go back to FL Studio and try composing a soundtrack + sound effects.



Monday 17 June 2019

Working on Beta

I've decided to stop working on the prototype as it was taking a lot of time doing things that I pretty much already know how to do and figured what little time I have would be best spent working on something that at least looks decent.

The time spent working on it wasn't a waste though as I now have a pretty clear picture on where I want to go with design. I may go back to it to try out some stuff I'm not clear on.


So I sort of finished up the PC character model, it needs a lot of polish, but that can be done later. The shading is done in Blender 2.8, and I have to say I'm really happy with the new rendering engine. Being an avid button clicker I don't care much for how they redesigned the menus in the 3D view port, so I'll probably do my modeling in 2.79 then bring in 2.8 for shading and coloring.

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.