Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411423 Posts in 69363 Topics- by 58416 Members - Latest Member: JamesAGreen

April 18, 2024, 07:23:40 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsMoonQuest
Pages: 1 ... 179 180 [181] 182 183 ... 189
Print
Author Topic: MoonQuest  (Read 1319586 times)
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3600 on: October 06, 2016, 11:18:10 PM »

Update: Endless work continues!!

Added back-wall-mounted lights
Alot more work on particle effects
Added bleed and blind status effects
Fix: lasers don't glitch thru walls anymore (yay!)
Fall damage is now applied based on distance fell
You break some blocks if you land hard enough
Staves have energy and particle effects
Added poison and fire explosion effect
Added outlaw, _____, and _____ secret characters
First set of music tracks are almost done
Meeting with some SFX people next week
Domain for new game name bought
Numerous bugs fixed.
Some new bugs seemed to have appeared

An outlaw meets a mollusc:


Stats for some of the ranged weapons:
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3601 on: October 14, 2016, 07:11:58 PM »

Update:
Durability damage affects weapons and wearables.
Broken weapons do minimum damage
Broken armour does half resistance
Broken helmets cause blindness (visibility is reduced)
Bulky armour slows you down a bit
Started making a big sfx spreadsheet
Misc organisational things
Disabled placing blocks or attacking when climbing
Alex and I will be moving office at the end of the month to work out of a home studio
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3602 on: October 17, 2016, 07:44:00 PM »

editing sound matrix!

Logged

Hephep
Level 1
*



View Profile WWW
« Reply #3603 on: October 19, 2016, 01:09:01 AM »

How does it work? Is it for dynamically associate sounds to randomly generated weapon?
Logged

oahda
Level 10
*****



View Profile
« Reply #3604 on: October 19, 2016, 02:54:48 AM »

Tables excite me, but I'm not sure I can read this one either. Headings would be good. Gomez
Logged

WarpQueen
Level 0
***



View Profile WWW
« Reply #3605 on: October 19, 2016, 06:43:29 AM »

This looks like my kind of game. Smiley I'm sorry if I've missed this part, but do you have an ETA of some kind?

Tables excite me, but I'm not sure I can read this one either. Headings would be good. Gomez

Agreed.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3606 on: October 21, 2016, 05:00:22 PM »

Update: Sound effects have been on my mind lately. I've contracted a local sfx studio to design and create the sounds for the beta release. Currently all the sfx in the game have been rough ones that I've been collecting primarily from http://www.freesound.org/ (those with the Creative Commons by Attribution license). It took some time to collect and master those, and they have done the job for a long time. However, they differ in quality and mastering and only make up half or less of all the sfx needed for Moonman.

Some of the main categories of sounds in the game are: Block destruction and placement, Weapon hit against material, Object and items, Misc effects, Humans, Mobs, and Ambient and environmental effects.

The primary action in the game is to hit things, and so the weapon hits are the largest category. Let's take a closer look at part of the Weapon vs Material sound matrix I've constructed to help organise the sounds:



The first 3 columns describe the kind of weapon a player may have. For instance a gold sword has the "metal" and "slash" type. An iron sword will be in the same type and so those two weapons sound identical. An axe, on the other hand, is a "metal" and "chop" type, so will sound different.

The second row lists different types of materials:


generic (a fallback type for any material not of the other types)
soil / moss
sand
clay / dried mud
trunk
wood wall
wood thin (e.g., a ladder)
crumbly stone (e.g., granite)
ore
many more not shown


Each cell in the matrix has two parts separated by a slash. The first part is the sound of a successful hit, and the second is the sound of a failed hit. An "x" in a part indicates that we need a sound effect there. For example, look at the cell in row "metal dig" and column "soil", it has two parts: "x" and "-". The first "x" means we need to create a sound of a metal shovel successfully digging into soil. The second character, the "-", just means to fallback to the generic metal row if the action fails (for instance if the shovel is too weak to dig through soil).

Sometimes a cell will refer to another cell, e.g., "metal chop sand success" will use the "metal dig sand success" sound. The "<" indicates to copy the sound to the left of the cell.

The challenge here is to determine the minimum set of sound effects that will work for the beta release. It's a tough balance between having a nice variety of sounds while keeping within my budget. Most of the yellow cells in the matrix above will be made into sound effects.

I now have a list of about 200 sound effects which I hope can make it into the beta, though it's a big ask with the limited time we have. If they don't make it into the beta then we'll slowly add them over the coming year, leading up to the final release. The entire list is in a large spreadsheet grouped by category. Here's some of the medium creatures category (the 'x' indicates the sounds I hope to have made):



Until next time!

Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3607 on: October 27, 2016, 10:09:52 PM »

Update: Added lots of misc parts and blocks. E.g., husk - a crumbly organic material that will appear in the lower caves. We have the title screen mostly done. I also now have a linux build box set-up and have successfully built and ran the game, woo!

In other news -- this is our last day in our office! We're packing up tomorrow and Alex and I are moving to a studio based at my home. This will be MoonbaseHQ for the next few months!

Here's the husk:



Have a great weekend!
Logged

oldblood
Level 10
*****

...Not again.


View Profile
« Reply #3608 on: October 28, 2016, 03:31:02 AM »

Best of luck on the home base! This just keeps looking better and better...
Logged

kanti
TIGBaby
*


View Profile
« Reply #3609 on: November 01, 2016, 06:12:21 PM »

Wow!! I discovered this game by searching for pixel art online, and came across Ben and pixel dailies. This game is what I've always wanted - beautiful pixel art, procedurally generated levels, particle system, liquids etc. etc. etc. Pre-ordered immediately. Now comes the excruciating wait. Godspeed!
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3610 on: November 03, 2016, 09:34:52 PM »

Update: Hey everyone! It's PAXAus tomorrow, so here's an early summary of my week:
alex and I are now working from my home studio,
the title screen is finalised,
tunnels are in (they connect different areas, see below),
added husks and bluecaps (glowing mushrooms) to forest,
tweak glow-wyrm distribution in forest,
some big bugs squished! so many bugs.

Unfortunately the sfx people have dropped out of the project, but I have a few other's lined up, so I need to contact them soon to get that ball rolling. The good news is that I've reduced the set to about 50 sfx (down from 200), so it wasn't completely wasted time.


Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3611 on: November 12, 2016, 06:40:51 PM »

Update: This week I improved the hit detection. Until last week all hits (swords, arrows, etc) were performed against rectangles (AABBs). This works well enough for most things due to the rectangular shape of a lot of the objects and creatures, but it performed very poorly against other shapes. Here are a few objects (a tree and a 'horse') for which rectangles do a poor job:



You can attack the empty space in the top-left of the horse and the system would detect a hit, likewise for the shaded areas in the tree. You can alleviate this by shrinking the hitbox, but then you have another problem: not all parts of the sprite will respond to attacks.

For more precise hit detection you need to use more precise shapes. I decided to use polygons, but you could also use multiple rectangles or even circles. (This is for geometric hit detection. You could also do image-space / pixel-perfect hit detection but that requires an entirely different approach.) Box2D (the physics library used in Moonman) supports hit-tests against convex polygons, and so it was just a matter of Creating those polygons and then Implementing polygon hit-detection.
 
Creating Polygons From Sprites

Due to the number of entities in the game, I decided to automatically generate polygons for all the large sprites. For each sprite this involved:
(1) Finding a contour / bounding-polygon which surrounds the entire sprite
(2) Simplifying the contour to use a small number of vertices
(3) Partitioning the polygon into it's convex parts

(1) was done using OpenCV, which has a tonne of interesting image-processing features. In some cases I had to dilate the image to generate suitable contours (as the thin parts of sprites sometimes caused multiple contours to be created.) The actual functions I used were findContours, dilate, and then approxPolyDP which performed step (2).

To do step (3) I first triangulated the polygon and then greedily joined each triangle to its neighbour, checking for convexity along the way. This is a fairly naive approach but it does the job for now! (One bad thing about it is that it produces non-optimal and fairly random partitions.) When all this was in place (via a Python script), my toolchain then outputs the polygons. Here they are superimposed over the spritesheet:



You can see the horse is modelled much more precisely now, and that large gap in the top-left is now mostly gone. Theoretically you could make this as precise as you like, but you'll have to pay for it in run-time efficiency. And here they are, imported into the game. The tree is modelled quite well.



Polygonal Hit-Detection


When taking a swipe at a tree or horse, the game performs a number of raycasts along the length of the weapon. If any of these intersect the hit-shape of the object then a successful hit is recorded. Before this week the rays were just cast against a single hitbox, but the hit-test now performs a few steps:

Cast a ray against all bounding boxes
For each successful test, either:
(1) Do another raycast again each convex polygon in its sprite, or
(2) Do a raycast against a smaller hitbox

Step (1) is only performed if the shape is big and if the graphics quality is medium or higher. This means that for small shapes or if you're on low render quality, you don't pay for the high-precision hit tests. There are a lot of horrible details omitted (like Box2D not like collinear points in a polygon), but that's the basic system. I hope that with this increased accuracy the game will feel more cohesive -- there's something odd about hitting empty space and having a hit register.

Here I am testing the system by flashing a polygon if it is hit:



Another interesting detail is the each animated sprite has a set of polygons for every frame. This will allow us to change the general shape of the creature, say by dropping the horse head to take a drink, and for hit-tests to still work on that different shape. Here you can see the different polygons for each frame of the horse walk animation.


In other news, the arrows have been annoying me for a while. They often wouldn't stick into the ground, or would slide along the ground, or would get stuck in odd angles ... so I cleaned quite a lot of that up.



Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3612 on: November 18, 2016, 09:16:56 PM »

Update: This week we focused on trees, forest area and town area. There are now a few different kinds of trees, some are just colour variations, but some have new tiles etc. This adds more variety to the areas. I also did a whole bunch of clean-up of the forest generator code to allow me to design some better environments. Was hoping to have all this wrapped up this week but it's taking a lot longer ... hopefully soon I'll be able to move onto the high-level game generation.

Also, here's a small change - you can now stand on top of trees and bushes.

Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3613 on: November 27, 2016, 05:34:52 PM »

Update: Hello again! Last week was a blur - I was stuck in a nightmare of hats and headgear, of masks and glasses. Alex had updated and cleaned up many of the helms, and it was mainly rote work to drop them all into the game. The current count is around 150, but they won't all appear in the beta -- we'll slowly enable them over time as we figure out their stats, which characters they appear on, and so on. Here are a few!



In addition to that we've been working on the town and townspeople. Alex has been creating new houses, doing the basic layout for the towns, and designing the sets of inhabitants you'll find there. Each town will have a slightly different theme, so for instance one town might have naked fern-hat wearing people and another might have more dressed up civilised people. The ultimate goal is to have the theme determine their behaviour and properties but that's a long way away -- for now we just want to add some variation between playthroughs by changing up the basic styles.

Continuing with this topic we're also creating variations of the major areas -- e.g., the forest may be green or blue and have different plants and basic structure. Again this is just at a superficial level, but ultimately this would also determine how the level plays. It's important to me to have all the basic ideas of Moonman in the Beta, and then expand them all over the following year.

Different skin colours for humans are now available -- there are 3 different colours, for both playable characters and the townspeople. We also have a bunch of different faces etc, which means we have a colourful cast of humans.



Later today I'll be writing a Kickstarter update with the new deadline and and some more info. Thanks for reading!
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3614 on: November 27, 2016, 10:58:30 PM »

Update: The latest Kickstarter update is here. We hope to release in Early Access in March, 2017. Here are some of the playable characters. Have a safe/happy holidays and thanks for all your support this year! TIGs will always be my home.

Logged

Kakapio
Level 0
***



View Profile
« Reply #3615 on: November 28, 2016, 04:01:09 PM »

Update: The latest Kickstarter update is here. We hope to release in Early Access in March, 2017. Here are some of the playable characters. Have a safe/happy holidays and thanks for all your support this year! TIGs will always be my home.



:O


Super excited for early access! It comes out in the same month as my birthday :D
Logged

What will you make?

Twitter
Scarlet Tower DevLog
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3616 on: November 29, 2016, 02:26:28 PM »

Super excited for early access! It comes out in the same month as my birthday :D

Wiew! :D
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3617 on: December 03, 2016, 07:38:20 PM »

Update: One of the tasks this week was to restructure the NPC and persistent human code (let's just call them all NPCs for simplicity). I'm working towards a system that simplifies the specification, generation, and serialisation of NPCs. At the moment the code (e.g., to make townspeople and the king in the castle) uses different generation and serialisation machinery -- but now that I'm clear on what I need I'm unifying it all. The basic requirements are:

The top-level Game Planner will specify where NPCs appear. (e.g., a SilverSmith in Town, a CrazyCatPerson in a Tunnel)
Main crafting NPCs will appear in Town
Special crafting and other NPCs can appear in regions (e.g., Forest) or sub-regions (e.g., Tunnel)
Some properties of NPCs are specified at Planner level (e.g., recipe list), but some are left to the region-generator (e.g., skin colour, outfit). (This is to simplify the Planner so it can just focus on the important properties.)
Crafter NPCs are specified by a RecipeList (this is as it sounds, a list of the recipes the NPC offers.)
NPCs has some persistent state (e.g, seed, name, health, agro status, crafter list)
Attacking a townsperson should set the whole town on agro status
NPC deaths persist. If a merchant dies, he's not coming back.
Special enemies like the King in the castle, or a are all factored in under


We also improved the appearance of ores -- one of the few remaining block types which haven't been updated in a couple of years. Some ores such as gold now produce light, so they are more easily found (see below).



I also improved the editor to help with development..
Added some keyboard shortcuts
Can spawn more npc types
Can give items/armour/etc to npcs
Can toggle diff npc behaviours (this is primarily for making gifs, videos, etc)
Can move NPCs around




Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3618 on: December 06, 2016, 10:15:13 PM »

Update: I'm finally at a good level of abstraction. Game Planner can say 'make a town, ensure it has a church' and area generator complies. The town generator is then free to do whatever it likes, adding other buildings etc, as long as it satisfies what Planner wants. Planner can then focus on important stuff that ties an entire game together.

Logged

jctwood
Level 10
*****



View Profile WWW
« Reply #3619 on: December 07, 2016, 06:29:36 AM »

This looks like a very powerful and adaptable system! I wonder if it could be made to parse external files for modding purposes.
Logged

Pages: 1 ... 179 180 [181] 182 183 ... 189
Print
Jump to:  

Theme orange-lt created by panic