1 year ago

May Goblin Game Dev Progress Post!
This time with Gamejolt Article version!!

Or you can view it on Patreon here:
https://www.patreon.com/posts/82526894

Thanks for checking it out, keep being awesome everyone!!


Hey everyone! I hope you're all doing well! Another month over, and another load of work done with the Goblins! :D

(Please excuse the random numbers, they're so I can fix any missing images )

Roofing + Lighting

I needed a way for Custom built Rooms to be lit when inside at night, using placeable Lights would be fine except the light bleeds through walls. So till I figure that out (I have some code for POV lighting but I couldn't get the darkness right) I'm doing this.

I've settled on having any Roofing with Flooring (not Paving) below it acting as a light source when you're under it. I'd like at some point to add in some Wall checks too so the game can sort of check if it's a Building.

 

ezgif-5-e908c7fef2.gif

1449

It's a little hard to tell what's happening because of the Players light source, but you can see how it works with the ones nearby.

I still might add a way of defining an area as a Building and using that instead, but that would mean adding another option to the Build Menu, as well as having a way of clearing it. I'd only be able to have square buildings though.

I've tried making it so Roofing requires an existing Wall or other Roofing to be built from, but I realise now I'm going to have to chain destroy Roofing if a nearby bit is destroyed...

 

monstisla1451.gif

1451

Destroying a Wall isn't an issue, since destroying works top down, but if you were to destroy part of a Roof I'd have to do do a check for the surrounding Roof, then for the ones around those etc making sure all are destroyed.

Instead...you can only build Roofing over Flooring/Walls/Doors, that way I don't have to worry about destroying it.

 

monstisla1452.gif

1452

I would do the chain destroy thing, but then I'd have to do it with culled Roofing and I can not be be bothered with that hassle.

Painting

Decided I want one of my buttons back from the Build Menu, so I've added Paint Brushes and Buckets as Craftable items. Not sure how I'm going to paint Roofing though. As is, it looks for the highest thing that can be painted, and works down to the Floor.

 

monstisla1453.gif

1453

Oh no! The Goblins were meant to make a Paint Bucket for painting a small area...I think they've been experimenting again!

 

monstisla1454.gif

1454

Also with Random colours!

 

monstisla1455.gif

1455

Added a Target indicator and effected area to Paintbrushes and Buckets.

 

monstisla1456.gif

1456

Changed how Crafting Paint works. My Crafting System doesn't allow for you to get more than 1 of an Item from a single Craft (mostly because of the UI), so I couldn't have you make Paintbrushes from a Paintbucket.

 

monstisla1458.gif

1458

Instead I've set it up so you first Craft Paintbrushes (which paint a single thing), then you can Combine them to make Paintpot which covers a larger area. This uses less Paintbrushes than the increased area.

...added how much of an item you get from Crafting, no longer is it just 1. XD 

monstisla1459.gif

1459

I ended up changing it, so now you Craft a Paint Pot first, then you can combine one of those with some Wood to make multiple Paintbrushes. This makes more logical sense than combining Paintbrushes to make a Paint Pot. You get the same number of Paintbrushes as tiles you paint with a pot.

Buildings

Added a Table Saw for Cutting and Shaping things, mostly for making better Building materials like Lumber and Bricks! Not sure what else I can use it for...someone suggested cutting Cheese X'D

 

monstisla1461.gif

1461

Made it so the Building animation stops after the Crafting Cycle has finished AND the animation has finished it's loop.  

monstisla1462.gif

1462

I'll think about adjusting animation speed in relation to Crafting speed...it shouldn't be too hard to link them together, but I'm unsure about if I should make one animation loop = 1 craft, seems way too quick

When you interact with a Converter Device they run a script that uses a ds_map to reduces your shown inventory to just valid items that can be converted. I figured out how to use it to also provide a value for how much of each Product to make for each Conversion.

I have my item values stored as Macros for example STONE = 13, so I can just type the Item name and the game code replaces it with the value.

The script adds the Items for each Converter Device to filter your inventory, but now it also adds the map entry string(STONE)+string("Q") which provides the amount to produce.

I also made a variation of the same script for filtering your inventory for Fuel and to get the amount of Energy each Fuel type provides.

UI

Updated UI and reworked Converter Devices.

 

monstisla1468.gif

1468

Added some JUICE for when you try to do something you can't. Made it into a super simple system too!

 

monstisla1470.gif

1470

First I check for the button press, which is grouped into direction or confirm.

Then Instead of having the code repeated throughout the whole thing, if you can't go left or right I set a type value to "H", for up or down it's "V", if it's the confirm button it's "STILL".

I also have a temp value to determine the direction, forward or back stored as a 1 or -1, with an initial default as 0.

Then at the end of the button press code I run a script with those 2 values which reset and fires off a lerp.

The orientation tells it which value needs to be lerped, either Horizontal or the Vertical with the direction value being multiplied by the lerp amount to invert it if necessary.

The lerped value is then applied to the draw x/y or scale of the relevant UI part! THEN IT GOES BOING!

New Items

Added Clay, Ash, Cement, Pottery. Mostly used in Building materials, maybe Alchemy.

 

monstisla1477.gif

1477

Bugs

I realise that if I change the order of the entries in the Building array (as they appear in the Build Menu) it breaks the Save Loading of the buildings.

This is because my Load code "Re-builds" the building as if the player made it, so when the game Saves it stores the place you'd be in the building array then the Load uses that to get the correct data, so if I rearrange between a save and a load it wont find the correct building.

SO! I'm now storing the building type (name) and feeding that into a ds_map to return a value, that value is a Macro e.g "FURNACE" = 3; which I use when populating the building array. Now instead of rearranging the array manually I just change the Macro number for the relevant value and that does it automatically!

Didn't work the first time though...forgot something XD

 

monstisla1471.gif

1471

Also my first real test didn't work, since I only applied the changes to the Buildings and not Structures

 

monstisla1472.gif

1472

All working now though!!

 

monstisla1473.gif

1473

Now I can add new Buildings or change the order all I want to group the same kind of Buildings together, without worrying about the Save files being messed up!

Water

Fixed a bug where the Water Shader wasn't being applied to the shoreline so it made a sharp blue edge!

 

monstisla1476.gif

1476

Not sure if I'm going to fix the sharp edge where different water depths touch, it would increase the world gen time.

Pathfinding

Forgot to close the game last night...I'm going to choose to believe these Goblins invented boats and not that they took advantage of the Culling system to completely ignore the shoreline barrier....

monstisla1492.gif

 

1492

Fixed it by adding the Water Tiles to the no-go area of the Pathfinding on WorldGen, unfortunatly this means it's not going to be added to my current savefile since WorldGen only happens once and not again on Load :|

This change might mean I can get rid of the Shoreline as an object? I still need to animate it, but I might be able to do that with tiles instead and it'd save me having a bunch of objects (even though I do cull them when out of view)

Controls

Found a bug where Throwing Glowsticks wasn't working properly, so I've changed how they work. Throwing them is now the same as throwing any other item.

 

monstisla1490.gif

1490

Now to use them, it's the same as using/charging a tool! Makes things more universal instead of them having them being controlled in a unique way to everything else.

Optimisation

I tried running the game on an old Microsoft Surface my brother gave me a while back, worked great! Except when you were near too much water :|

If you look that the gif above where I'm near the water you can see the two really big numbers next to the FPS, these relate how much the CPU and GPU are doing, usually related to texture page swaps and shader stuff.

I found that turning off the water shader made things way more stable, so I ended up reworking how I was doing it. Seems only running the shader on water tiles (so over and over) wasn't more efficient than just running it once over everything as a repeating tile.

 

monstisla1480.gif

1480

I also had to double up the draw loop for the world.

So now I draw all water things with the first loop, draw the water shader, then draw the land with the second loop! Thankfully this isn't too bad since I'm only drawing the tiles in view.

There are some limitations to this change, I can't have different alpha's and water tiles depending on the location anymore since it's just repeating the one. So I'll have to rely more on the base tile which I can.

Goblins Appearance

Also found that I had the same issue with the NPC Goblins, turning on and off the palette swap shader that controlled their skin tones.

 

monstisla1491.gif

1491

I tried reworking it so it would only have it's uniforms (the gpu heavy part) the once just change the colour for each Goblin, but it wasn't working. The alternative would be to build an entire custom draw system so I could apply the shader once, draw all the Goblins that are at a specific screen depth, turn it off then repeat as needed. But that's way too much work, so instead I just made some different sprites for each colour!

 

monstisla1493.gif

1493

Check of big a difference there is in the GPU number in the top left. In the first gif spawning loads of Goblins makes it shoot up into the 100's, but in the second it only goes up to 30! I'm still going to use the shader for UI Goblin faces though and for the Player since that only needs to run once.

Added a new Haircut for Goblins, Twintails! I'm not sure how many I'll add overally, but I'd like people to have a decent selection!

monstisla1496.gif

1496

Systems

FINALLY started working on the system for Goblins to automatically arrive on the island...

 

monstisla1481.gif

1481

For now, I've set up an Announcement system! A nice little ds_list with a tween to bring the UI element on screen and another to remove it. Getting the list to work right was a pain though, I swear the ds commands don't work as you expect and you have to jerry-rig things together.

For example, I'm doing if !ds_list_exists(announcements) and if not create it and add the data, if it does just add it. But I'm actually having to do if announcements != -1 && !ds_list_exists(announcements), otherwise if I press the test button too quick it creates the list twice.

Very early work on the Town Menu UI.

 

monstisla1484.gif

1484

Decided to split the Town menu into parts, so I've added a Goblin section. I'll add in their various data to the right, but I guess I should rework the NPC UI so I can have them match

 

monstisla1485.gif

1485

Made it so the Minimap tracks the Goblin you are currently checking on. Might make this a button press instead?

Gamejolt Stickers

parade024.gif

Ooo! We have a shake up of the top 3 places! @SubterraneanExhibit has taken the top spot for May!!

But I'm @Coring still has the top place overall!

Congrats everyone, and thank you all so very very much. All of your support means the world to me and seriously, it really helps me out. I'm not doing great financially right now so each of your charged stickers make things that little bit easier.

Keep being awesome everyone, and please look after yourselves!



0 comments

Loading...

Next up

In the meantime, here's some more Pokemon finds. I think my Rat might also be sick?

OH! Different way of doing it.

11 lines of code, no randomness needed to stop them bouncing forever up and down!

This still means individual objects for the balls and bouncers, but no physics engine definitely means this is possible for minigames!

I am behind on progress post but need sleep.

Drew new Crafting Buildings because I didn't want to fill the Crafting Bench with loads of Equipment Recipes.

Even with the new ones, I'm still probably going to have to add tabs to swap between types

Happy #WIPWednesday!

Are you working on a game?

Making some art?

Practicing a song?

Something else?

Tell us in the comments!

Happy November everyone!

Super slow month since I took a few days off for my birthday, and spent a lot of time making new sprites which doesn't really require much write up.

I guess everyday is a Friday when it's a #FanArtFriday! This one's my most recent art of Majora's Mask

DING!

Happy Sunday everyone! I hope you're well! Family is all back so I got Sunday Lunch today!

Also, so many shiny maonkeys!

Time to get back to Progress Post!

Please take care, do your best and remember you're all awesome and unstoppable in your goals!

Happy #WIPWednesday!

Are you working on a game?

Making some art?

Practicing a song?

Something else?

Tell us in the comments!

Ok, going by my test project it's totally possible to draw physics objects to the UI (top left corner). That doesn't solve the issue of having possibly 100's of extra object active at once though.

Meh, this is just a thought experiment.