Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1392666 Posts in 66985 Topics- by 59835 Members - Latest Member: jlivingstonsg

June 20, 2021, 02:25:47 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Resurrection - A game about (re)building the past
Pages: 1 ... 10 11 [12]
Print
Author Topic: The Resurrection - A game about (re)building the past  (Read 17155 times)
amasinton
Level 1
*



View Profile
« Reply #220 on: May 17, 2021, 01:23:14 PM »

Thank you, everyone, for the support.  It means so much.  Sorry to be so late in the replies.  The day job got very busy the very next day after I posted the update.  But, I'm squeezing from time from a quiet moment at work (because we're in the middle of an epic rain/hail/thunderstorm and no one wants to visit) to say hello and thank you.

Quote
I have a build!

 My Word!

Ooof owie ow

Thank you JobLeonard - and thank you for sharing your pain at working with hi-resolution and integrated graphics!

Congrats!! Hand Clap What a nice update! Enormous props for keeping at it through many layers of difficulty. Things are looking (and sounding, from what I've heard!) great, and I cannot wait to play around with a demo! Smiley

Thank you, as ever, Chris, for the encouragement and kind words.  I can't wait to have a demo for you to play with.  I'm aiming for late summer - as a birthday present to me...

... will be interesting to see how it all works together.

It WILL be interesting to see how it all works together.  I'm not sure it all does, but that's one of the points of a demo - to test things out (which I should have been doing ages ago, but I haven't had anything that would even build until now.) AO is looking gorgeous, BTW, Ava.
Logged
Prinsessa
Level 10
*****



View Profile
« Reply #221 on: May 19, 2021, 05:36:39 AM »

Thank you! Excited about your demo!!
Logged

amasinton
Level 1
*



View Profile
« Reply #222 on: June 05, 2021, 01:11:25 PM »

The May Update


May went by rather quickly.  It’s the season when the tourists all flock back into town and my day-job gets a lot busier.  After last year, when the only people on Main St were a couple of teens on skateboards, it’s nice to have things a little more active.

So, what got done in May?

Lots – but lots of the same sort of thing, so there’s not much obvious progress.  But that’s okay.

Same great looks, half the verts!
In the last update I mentioned that I discovered that Macs can do normal reconstruction using partial derivatives.  This is good, because it provides flat, low-poly shading without having to duplicate (or triplicate or quadruple, etc) vertices.  Since all of my meshes rely only on vertex colors for color, the meshes themselves only have to use two vertex streams: position and color.  No normals, no UVs, no tangents.


Cube composed of 24 verts (left). Cube composed of 8 verts (right).

The catch, though, is that I need to reimport all of my meshes and sometimes that requires a little manual labor on my part.  That process took about two weeks (there were a lot of very old meshes with all sorts of superfluous data baked in).

I reduced the combined vertex count of all of my architectural assets by several hundred thousand vertices without any loss in visual quality.  However, there are still several hundred thousand vertices too many.  I could not figure out where all of these vertices were hiding.  So, I built a little editor script that outputs a report on every mesh in the scene and orders them according to the number of vertices.  Turns out that the majority of my vertex count comes from vegetation.  The problem with this is that I do, in fact, need normals for this because the leaves take advantage of bent normals to produce soft shading on crossed quads.  I have a lot of crossed quads in some of my trees and bushes.  So, I either stream in vegetation as-needed, or I live with high vertex count.  (I even tried to work with GPU Instancing using the excellent GPU Instancer asset .  The system is heavily camera-dependent and that’s a problem for this game where the time travel system is also camera-dependent.  So, it looks like instancing is a no-go – which is a shame because it’s proper magic when it works.)

Addressing Addressables, again.
I don’t really know how to efficiently stream in the vegetation just when I need it, but I finally found a straightforward tutorial on Unity’s Addressables (I played with this system a few months ago, but the tutorial I was using was too difficult for me).  Last time, I created a system that streamed in cubes in a grid based on camera view.  It was super slow.  Using GameDev Resources’ tutorial, though, I see that the good old test cubes are popping in very quickly.  I’m starting to suspect that the slowness was based on my own code for determining which cubes in the grid were visible to the camera rather than the Addressables system on its own.  But, the very early results this time are encouraging.  This might work for the vegetation?

The tutorial comes now?
I also built a rudimentary tutorial system which shows screen-prompts to help teach the player how to interact with the game.  It’s not much, but it’s something and I’m mostly happy with it.  Sometimes it gets in its own way, but that’s okay for now.

Smashing up old stuff.
The rest of the month has been spent fracturing architecture.  The Roman and Norman periods contain a few buildings which need to be broken up to prepare them for their rebuilding animations.  (Come to think of it, so does the Iron Age…)  I built a lot of this stuff a long time ago so, again, it needs to be updated.  I have also added an early medieval monumental cross, as this is a critical feature of the early church site and kind-of bridges the transition from the spring/holy well of the prehistoric and Roman periods into the late antique/medieval and beyond.  That was a tedious slog – one that I’m not quite finished with.  Part of what makes it tedious is thinking about how the fracturing and rebuilding works with the larger game design. 

Which brings us to…


A fragment of the early medieval cross, based on a cross at Clonmacnoise (I know, I know, right period, wrong place, but I had the photogrammetry to-hand). If you find this you might change the course of in-game history…

Ruins
The core mechanic of the game is rebuilding ruins.  Simple, right?  See some ruins, rebuild some ruins.  That’s how this all started.


Decline and Fall

But here’s the thing: buildings are in a perpetual “Ship of Theseus” situation.  When would you say that a building is “complete”?  Most buildings undergo modification almost immediately after their first phase of construction.  Occupants block up windows, punch through walls, extend rooms, add storeys, etc.  Every new occupant makes their mark.  A building that lasts for centuries can undergo so many modifications that its original structure is lost. 

For example, the fine Roman amphitheater you can visit today in Arles, France, was built in the 1st century but by the 5th or 6th century had been turned into a fortress with a town inside, complete with defensive towers and parish churches.  The arches of the amphitheater were filled in with houses, shops, and storage, transforming this Roman civic building into a hodge-podge medieval village.  The building you see today is a restoration of whatever “original” fabric survived the overbuilding and adaptation of the succeeding centuries.  In Lucca, Itally, the amphitheater is preserved in the circular layout in the town’s street pattern and central piazza, and in some standing fabric embedded in the walls of the later houses.


The amphitheater at Arles today (left). The amphitheater in the 18th century (right). (Source: (Left) Rolf Süssbrich. (Right) J.B. (Jean Baptiste?) Guibert).


The amphitheater at Lucca today. The circular plaza is just visible on the right. (Source: (Left) Barrett-Small (Right) James Manners)

The when of a building is one of the core design problems of this game.  When the player rebuilds the parish church, they rebuild the church as it existed when?

It should come as no surprise that this is one of the core problems in archaeological illustration of sites as they may have been in the past.  Normally, you would commission a series of illustrations, showing the site in several developmental phases.  But even this is somewhat arbitrary.  The archaeologist must make a decision about the when or whens they are choosing to depict.  Because the illustrations are normally single-image snapshots, the archaeologist is usually afforded some leeway as to exact dates, and so has some wiggle-room.  In a game like The Resurrection there is less wiggle room because the totality of the history of a site is being displayed.  At least, that’s the goal.

So, how to choose the When of a building?

It’s arbitrary, but I have chosen to concentrate on reconstructing buildings at their “fullest extent”.  Whatever that means.  So, it may mean that some parts of the fully reconstructed building are from different period prior to the player’s point in time.  Some reconstructed portions may even be reconstructed as ruinous.

…Back to this past month and me breaking apart the Roman and Norman buildings.  I needed to think about when these buildings began and when they ended, and how they met their ends.  That started to get difficult to illustrate very quickly, especially if the end of one building – such as the Roman temple tomb – contributed to the beginning of another – the building of the Norman chancel. 


The ruined Preconquest church on the left, with the ruins of the Roman temple tomb on the right. Which one the player chooses to rebuild will affect how they time travel.

And what if a player travels to a time period in which a building exists but they haven’t reconstructed that building yet?

Sometime over the past year I built a feature where a player would time travel when they completed a building, or part of a building.  This feature helped me out of one design pinch, but it wasn’t until this month that I realized it would help me get through this core design problem of When.  A player can rebuild a building the first time they encounter it, regardless of what period that is in.  When the building is rebuilt, the player automatically time travels to the “fullest extent” period that particular rebuilding represents.  The player gets a baseline point-of-entry to that building’s story to which they can relate every other time – in the past or future - that they encounter the building.

Also, for special cases, I can just present the player with un-rebuildable ruins that flash the message “More Data Needed” when moused-over.

Having this problem better understood makes it easier for me to continue to craft content for the game.  It’s just the way I design, I guess, but if I don’t have a strong grasp of solutions to design problems I often find I can’t make progress in other areas of development.  The When questions is one of those problems.  So, it’s nice to have it out of the way – at least until it returns in another form later on when I run into the unintended consequences of this “solution”!

Which is fitting for a game called The Resurrection.

I’m keeping to my unrealistically optimistic goal of getting a playable demo out by August.  Two months left …
Logged
JobLeonard
Level 10
*****



View Profile
« Reply #223 on: June 06, 2021, 05:28:03 AM »

Yay, an update!

Quote
The fact that you froze this image as everything was about to fall apart gives it a really uncomfortable tension somehow

Quote
It’s arbitrary, but I have chosen to concentrate on reconstructing buildings at their “fullest extent”.  Whatever that means.  So, it may mean that some parts of the fully reconstructed building are from different period prior to the player’s point in time.  Some reconstructed portions may even be reconstructed as ruinous.
So you basically defined an sort-of arbitrary metric for "peak development" and went with that? Sounds as good a solution as anything. At the very least it will give players more stuff to do, right?
Logged
amasinton
Level 1
*



View Profile
« Reply #224 on: June 06, 2021, 07:48:25 PM »

The fact that you froze this image as everything was about to fall apart gives it a really uncomfortable tension somehow
Right?! It's a metaphor for how I feel about the game's codebase, too!

Quote
So you basically defined an sort-of arbitrary metric for "peak development" and went with that? Sounds as good a solution as anything. At the very least it will give players more stuff to do, right?
Yes, that's right. Some of these buildings have really long lives, but you've got to enter their story at some point - and that can be pretty arbitrary. It makes sense to start it when the player can make the most direct connection between the ruins they can see and the reconstruction they create. Then they can continue their relationship as they encounter the building over and over again through time...
« Last Edit: June 08, 2021, 03:39:59 AM by amasinton » Logged
JobLeonard
Level 10
*****



View Profile
« Reply #225 on: June 07, 2021, 12:51:21 AM »

(there's a typo in one of your [/quote] tags I think)

I was just thinking: the "peak development" thing reminds me of mythologized "former glory" narratives of fascism and other ultra-nationalist movements. Maybe you can actively try to address that warped vision of history in the way this game approaches the evolution of a place? I don't know if we talked about this before (feels like the kind of subject that must have been brought up at some point)

Quote
Right?! It's a metaphor for how I feel about the game's codebase, too!
Hahaha, I feel your pain. The worst part is that you're building a house of cards based on other people's software, which also tends to be a house of cards.
Logged
amasinton
Level 1
*



View Profile
« Reply #226 on: June 08, 2021, 03:47:49 AM »

(there's a typo...
Fixed it - thanks for catching that!

Quote
I was just thinking: the "peak development" thing reminds me of mythologized "former glory" narratives of fascism and other ultra-nationalist movements. Maybe you can actively try to address that warped vision of history in the way this game approaches the evolution of a place? I don't know if we talked about this before (feels like the kind of subject that must have been brought up at some point)
I don't think we actually have - but you're right - the idealized past might be so tempting to interpret out of this experience. I hope that proves to be a problematic reading. If anything, I'm working in the principle that any moment in the past is someone's post-apocalyptic future - there is no ideal past.

Quote
The worst part is that you're building a house of cards based on other people's software, which also tends to be a house of cards.
The amount of code I have to write to get around the code someone else has written...
Logged
Prinsessa
Level 10
*****



View Profile
« Reply #227 on: June 11, 2021, 06:17:35 AM »

Riveting update as always. It does feel like things really ramped up very quickly recently, that's really nice to see. The ruin starting to crumble looks really good, the shading is very nice and warm too. Would love to see some code/nodes for the flat shading if you don't mind! The writeup and the real-world examples tying into it are super interesting as always. Sounds like you're onto a good solution with the design problem too. Thanks for sharing this! Best of luck with that August goal… Shocked
Logged

Pages: 1 ... 10 11 [12]
Print
Jump to:  

Theme orange-lt created by panic