Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

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

April 19, 2024, 10:20:58 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsMoonQuest
Pages: 1 ... 176 177 [178] 179 180 ... 189
Print
Author Topic: MoonQuest  (Read 1319921 times)
Macuyiko
Level 0
*


View Profile
« Reply #3540 on: June 25, 2016, 07:05:17 AM »

Looks super cool. Are you using some sort of procedural generation to come up with interesting shrine/object ideas or are they all constructed by hand?
Logged
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3541 on: June 25, 2016, 08:54:34 PM »

Looks super cool. Are you using some sort of procedural generation to come up with interesting shrine/object ideas or are they all constructed by hand?

Cheers, nah there'll be no procgen on the smaller things like shrines. We're basically just making a whole bunch of variations by hand.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3542 on: July 01, 2016, 11:04:53 PM »

Update: Content-spree continues. Added a tonne of new blocks and world objects this week. We've got lots of little bits and pieces which we're using to construct interesting features. Here's a scene Alex put together to show some of the pieces.



Added inheritance to blocks to simplify the specification. So, for example I can now simply say that the bookshelf_big block type inherits from the bookshelf block type, and all the properties are copied over. I can then specify any that are different. (In this case the big bookshelf has a greater health.) Here's a section of the output of a script I wrote to show these relationships.

Code:
bone: dt dig h 6 sbod false
--bone_spine:
bone_wall: h 4 sbod false
bookshelf: dt chp h 4 sbod false
--bookshelf_big: h 6
brass: dt 1 dt sms h 10 sbod false
--brass_2x1:
--brass_2x2:
--brass_disc:
--brass_pylon:
brass_chain: an true dt ore h 16 sbod false
clay: cl 3 dt dig h 10 ml 2 mm 1 st natural sbod false
--clay_slope:
clay_wall: h 4 sbod false
--clay_vine_wall:
----clay_vine_wall_dense:
--clay_wall_patchy:
--clay_wall_really_patchy:
--clay_wall_slope:

Sam continues to optimise the engine and over the next two weeks he'll be adding LOW, MEDIUM, and HIGH quality settings to the game. This'll be available from the launcher, and will hopefully enable more people to play the game at decent frame rates by disabling some of the visual features.

Unfortunately we've encountered an issue with certain OSX integrated-graphics setups. Moonman runs too slow to be playable (~10fps) and it is too big of a job to optimise at the moment. We'll test again when the LOW quality setting is ready, but it's likely that we'll just set the minimum specifications to require a graphics card. Strangely the game runs well enough on my Mac Mini (which I assume is integrated gfx), so this doesn't affect all systems. At some point after launch we'll take another look into optimising the engine to perform better on lower-end systems.

Added crumble aspect for mining. If you have a compatible item/block combo then you can demolish blocks much quicker.

Logged

Bricabrac
Level 2
**


Fail again. Fail better.


View Profile
« Reply #3543 on: July 03, 2016, 12:55:26 PM »

The editor looks super neat! Will it be available for users/modders too? It would be so convenient to build an object and pop it into the world, instead of building it "by hand" with your character.
Logged

Selling Sunlight - Wandering Merchant RPG
kcbanner
Level 0
***


View Profile
« Reply #3544 on: July 03, 2016, 02:18:36 PM »

Check this out: http://www.shiningrocksoftware.com/2016-06-23-passing-values/ the developer of Banished encountered perf drops on certain OS X setups, perhaps you are hitting a similar issue?
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3545 on: July 03, 2016, 05:47:48 PM »

The editor looks super neat! Will it be available for users/modders too? It would be so convenient to build an object and pop it into the world, instead of building it "by hand" with your character.

Yeah I hope to release the editor at some point after the first public release.

Check this out: http://www.shiningrocksoftware.com/2016-06-23-passing-values/ the developer of Banished encountered perf drops on certain OS X setups, perhaps you are hitting a similar issue?

I'm not sure it's a similar issue but it's an interesting issue that they encountered. Ours is something to do with the smaller command buffer available on the integrated gfx driver.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3546 on: July 09, 2016, 06:48:10 PM »

Update: Sam is working on quality settings for the game, you'll be able to to choose between LOW, MEDIUM, and HIGH gfx settings. LOW will be super bare-bones and will only render the essential parts of the game, at a lower quality, with no effects. HIGH will render everything, all effects, maximum particles and shaders, more things in the world, higher precision physics, and so on. MEDIUM is a compromise where we'll aim to make the game look as good as possible but disable some of the higher-end effects. We'll tune these defaults as we go, but at the least I wanted to have a stripped back minimal version of the game that'll run well on lower-end hardware.

World-wise I'm working on a few different pieces, for instance, I've finalised most of the volcano area tiles and am delving down into the pieces that make up the cathedral which sits below the surface.

In addition we're adding more stuff as usual. We'll be adding procedural generated signs to buildings, crystals that can be mined for the crystal resource (these are interesting because they aren't block-type resources, rather they are object-type resources), different bridges to add some flavour to the world, and plenty more.







Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3547 on: July 15, 2016, 08:07:02 PM »

Update: Sign Generation
Over on this thread we were discussing names for Taverns, Armouries, etc. I took all the suggestions and built a procedural sign generator. It has a bunch of templates and words and can generate Merchant, Armoury, Tavern and Miscellaneous signs like "The Prancing Leech", "The Six Axes", "Honey and Wyrm", etc.

The system is really simple, it just chooses between different patterns. For instance, 3 possible patterns for the tavern might look like this:

TYPE1 -----> THE <COLOUR> <CREATURE>
TYPE2 -----> THE <CREATURE_ADJ> <CREATURE>   
TYPE3 -----> THE <CREATURE> and <CREATURE>


When generating a name, the system then chooses one of TYPE 1, 2, or 3 at random. It then replaces each of the <BRACKETED> terms with a random entry chosen from a list. It's more-or-less a context-free grammar-based generator. The tavern generator has about 20 of these kinds of patterns.

As I build the system I start generating names to get a feel for it and I keep adding rules and exceptions until I get a reasonable variety of decent sounding names. Then comes the matter of getting the signs into the game itself. I could either (a) convert the generator code into c++, (b) embed python into the engine (blehk!), or (c) just generate a huge list of names and then include those directly in the game. For now I went with (c) - so while the signs were technically procedurally-generated, they aren't dynamically generated. Instead there are just huge lists (1000 signs per type) which the game pulls from.

Here is an example run of the generator:

Merchant

The Big Sponge
The Iron Torch
The Cork, Stick and Cork
The Gray Belt
The Toy and Arrow Store
The Conspicuous Rock
The Happy Fan
The Open Chasm
Glorious Store
The Snow Bag Shop
Eternal Well
The Cheap Thread
The Smelly Thimble
Snow Sponge
Curious Lamp
The Chocolate Thimble
The Rope's Handle
The Cheap Cat Packet
The Coral Toy
The Mirror's Lump

Blacksmith

Longswordsmith
Noggin and Cuirass
The Bulwark and Daggerplace
Silver Dustpan
The Dull Noggin
Barricadeplace
Ten Pickaxes
The Seven Tridents
Battleaxe and Scythe
The Iron Raiment
The Green Shovel
Seven Feathers
The Cloak and Longsword
Pale Pickaxe Anvil
The Enchanted Robe House
The Pale Sword
The Halberdhouse
The Perfect Stinghouse
The Mirror and Poker
Violet Sword

Tavern

The Gray Lobster Pub
The Long House
Magical Cave
Lizard and Brute
The Dark Place
The Lizard and Bloat
The Place Where You Get Drunk
The Pale Wyrm
The Hungry Tesseract
Pale Leech
Maverick Pit
The Musty Nook
Flamboyant Vole Brewery
The Chocolate Limpet
Golden Tesseract
Coral Rabbit
The Glass Mudcrab
The Lonely Cockatrice
The Librarian's Nose
The Hound and Squirrel

Miscellaneous Signage

Jump Over Spare Notion
Give Way to the Long Nook
Don't Touch the Holes
Loots Here!
Jump Over the House
Embrace the Pier
Avoid the Rabbit
Give Way to Awful Duty
Observe Unreal Cuteness
Cook Cave
Observe Lousy Style
Give Way to Alarming Causality
Cook Extreme Utility
Jump Over Enormous Belief
Don't Touch Harrowing Brute
Embrace the Place
Embrace Keen Injustice
Embrace Inferior Logic
Live for Liberal Infallibility
Jump Over Bloat

And here I am testing some of the signs in the game:



And now for my favourite generated tavern name...

Logged

oahda
Level 10
*****



View Profile
« Reply #3548 on: July 16, 2016, 02:16:14 AM »

Looks good, but..! I really think you should make any other signs disappear if a new one shows up. It looks a bit buggy (even if it isn't) and disorienting when there are many text labels at the same time.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3549 on: July 16, 2016, 11:12:03 PM »

Looks good, but..! I really think you should make any other signs disappear if a new one shows up. It looks a bit buggy (even if it isn't) and disorienting when there are many text labels at the same time.

Yeah I might end up doing that. As it stands now these signs are few and far between, there might be like 5 in an entire level, they won't be all stacked up like this.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3550 on: July 22, 2016, 10:58:07 PM »

Update: The cathedral level is taking shape, most of the design is done and the implementation is catching up. Here's an ascii representation of a generated level:



You can see the general layout, feature rooms like "store" and "chamber", and the connecting corridors and staircases. This level will be more linear than the others with just a few potential paths down to the Archive. Some of the technical issues I've solved are generating (mostly) non-overlapping room and corridor layouts, parametric room generators (e.g., stores have a variable height and number of shelves), and ensuring that the entire thing is all connected together. Little to no mining will be needed in this level. Here's a store room:



Over in the dialogue thread a few of us started to pitch ideas for what the NPCs might say. All the dialogue is procedurally-generated, which is not too tricky given that the NPCs spout nonsense. We cam up with a whole heap of templates and then I implemented them. Here's some of the thousands of lines of dialogue that the system generated:



The render quality system is now in place and you can choose from low or high quality atm. At low quality we've stripped out all non-essential effects, draw fewer objects, and render at a lower resolution, among other restrictions. This will be the Minimal Moonman that you should only run if your system is low spec. I'll also be adding a medium quality before release that will disable the higher-end effects.

Two more higher-end effects that I'm considering adding are a shiny metal material effect and light beams. The shiny material would have ideally make the metallic objects seem more sensitive to light. The light beams would be an overlay of light casting from windows and gaps in cave walls, etc. We'll spend a couple of friday afternoons experimenting with these and see how we go.
Logged

oahda
Level 10
*****



View Profile
« Reply #3551 on: July 23, 2016, 01:04:18 AM »

Ooooh. Neat procgen stuff in multiple ways. Is the grammatical mistake (these clothes makes instead of these clothes make) an artifact of the procgen or your own typo? Can you fix it?

Would love to hear a bit more about how the dialogue generation works. c:
Logged

jack0088
Level 0
*



View Profile WWW
« Reply #3552 on: July 23, 2016, 05:11:10 AM »

hey ben, amazing game. i admire your enduring motivation  Hand Thumbs Up Right

i'm really curious, how many lines of code do you have at this point?
Logged

Hobby game developer and Lua enthusiast. Currently working on Cavemen, an 8-bit roguelike.

Engine of choice: Codea | Language of choice: Lua
Fallow me @twitter
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3553 on: July 23, 2016, 11:24:14 PM »

Ooooh. Neat procgen stuff in multiple ways. Is the grammatical mistake (these clothes makes instead of these clothes make) an artifact of the procgen or your own typo? Can you fix it?

An artifact, the system doesn't really know about plurals "this hat makes", "these pants make", etc. It's a really simple system, basically just generating random strings and joining them together. Check out Nanogenmo for for much more interesting approaches.

hey ben, amazing game. i admire your enduring motivation  Hand Thumbs Up Right
i'm really curious, how many lines of code do you have at this point?

Hi, thanks Jack! Smiley It's hard to tell exactly, but there's about 120k lines of moonman code, not including whitespace, comments, or external libraries.



Logged

jack0088
Level 0
*



View Profile WWW
« Reply #3554 on: July 24, 2016, 02:31:56 AM »

Hi, thanks Jack! Smiley It's hard to tell exactly, but there's about 120k lines of moonman code, not including whitespace, comments, or external libraries.

Woah?!! WTF Thats a lot! It's a task on its own to manage only that..
May I also ask you another question? (this one might be a little more technical though)

How do you display your maps? Are you slicing them into chunks and draw visible tiles as chunks or is everything on screen a separate object? How does it scale up to layers?

What I wonder about is how to display a lot of objects efficiently, and you seem to have solved that task already, so I thought I could ask for some tips.
Logged

Hobby game developer and Lua enthusiast. Currently working on Cavemen, an 8-bit roguelike.

Engine of choice: Codea | Language of choice: Lua
Fallow me @twitter
eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3555 on: July 24, 2016, 04:07:48 PM »

How do you display your maps? Are you slicing them into chunks and draw visible tiles as chunks or is everything on screen a separate object? How does it scale up to layers?

I render every 16x16 set of tiles into a render texture, and only re-render them when they change. Then I just render those textures to the screen.

My friend, Jasson, who makes a game called Crea does it a different way: he uses vertex arrays to batch the tiles into a few draw calls. Both approaches have their pros and cons.
Logged

jack0088
Level 0
*



View Profile WWW
« Reply #3556 on: July 25, 2016, 03:01:41 AM »

I render every 16x16 set of tiles into a render texture, and only re-render them when they change. Then I just render those textures to the screen.

My friend, Jasson, who makes a game called Crea does it a different way: he uses vertex arrays to batch the tiles into a few draw calls. Both approaches have their pros and cons.

Ben, thank you very much for the insight! I really appreciate that!

I will try out both, since I had an idea similar to Jasson's method: making a mesh with 256 faces, assign each face a tile (which is just a region on same texture) and render that mesh in one draw call. When changes appear re-assign faces on the go.
Logged

Hobby game developer and Lua enthusiast. Currently working on Cavemen, an 8-bit roguelike.

Engine of choice: Codea | Language of choice: Lua
Fallow me @twitter
oahda
Level 10
*****



View Profile
« Reply #3557 on: July 25, 2016, 03:08:06 AM »

How did you settle on 16x16 specifically? Does it begin to get slower again after that? Is it like a sweet spot? How big is one tile, so that I know how big 16x16 are?
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3558 on: July 25, 2016, 05:35:00 PM »

I render every 16x16 set of tiles into a render texture, and only re-render them when they change. Then I just render those textures to the screen.

My friend, Jasson, who makes a game called Crea does it a different way: he uses vertex arrays to batch the tiles into a few draw calls. Both approaches have their pros and cons.

Ben, thank you very much for the insight! I really appreciate that!

I will try out both, since I had an idea similar to Jasson's method: making a mesh with 256 faces, assign each face a tile (which is just a region on same texture) and render that mesh in one draw call. When changes appear re-assign faces on the go.

Yep that's a super simple way to do it, good luck! Smiley

How did you settle on 16x16 specifically? Does it begin to get slower again after that? Is it like a sweet spot? How big is one tile, so that I know how big 16x16 are?

One tile is 8x8 pixels, but tiles can be bigger than that with edges that stick out etc. I didn't test 16x16 tiles vs, say 8x8, so I'm not sure which would be better. For my physics I cache in groups of 4x4 tiles.
Logged

eigenbom
Level 10
*****


@eigenbom


View Profile WWW
« Reply #3559 on: July 30, 2016, 12:04:24 AM »

Update: I updated to Windows 10 this week. The game still runs well, though I had to update my graphics drivers.



We've done a heap of tiny things this week, bug fixes, system-level stuff, and other things:

FIX: A vertical line would occasionally flash.
FIX: Misc bugs between low/med/high gfx modes, they all work perfectly now and the game runs well in low mode on my 5 year old mac mini.
FIX: Rare crash on OSX to do with submerging entities
Updated launcher to show gfx options and changelog. Removed old options. (see below)
Re-enabled vignetting, there's an option to turn it off.
Cleaned up gui options a bit.
Window dimensions are now saved on exit.
Updated Laser rendering
Restructured Linux build, now it's bundled as a simple tar and will check for updates.


I also did some major work done on build and deploy system -- it has to be cross platform and support the different modes of distribution (humble, itch, steam, mac appstore, ...). Each distribution platform has it's own method for handling updates and deployment, so it's just a matter of plugging into each of the systems. The standalone auto-updating version will still work as normal, though the game will also auto-update through itch and steam. Many details still need to be sorted out.

Sam is building the OSX launcher next week. It'll work like the windows one. For the linux standalone version we'll just have a shell script which you type from command line, it'll check for updates too.



Alex has been doing lots of work on cleaning up the ice and tomb areas in the Mesa. Despite drowning in post-its, I'm feeling confident that we're on schedule for the beta release.
Logged

Pages: 1 ... 176 177 [178] 179 180 ... 189
Print
Jump to:  

Theme orange-lt created by panic