Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411492 Posts in 69377 Topics- by 58433 Members - Latest Member: Bohdan_Zoshchenko

April 29, 2024, 07:55:30 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsXanadu Live - Formerly "Game about towers."
Pages: 1 2 3 [4] 5 6 ... 8
Print
Author Topic: Xanadu Live - Formerly "Game about towers."  (Read 8406 times)
michaelplzno
Level 10
*****



View Profile WWW
« Reply #60 on: February 09, 2023, 02:49:17 PM »





I think there might be a floating point error of some kind with the terrain? I only made it to 30km this time which is a value of 30,000,000 stored as a floating point. I guess I was getting pretty far up there, I'll have to rework the game so that it moves the origin of the map.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #61 on: February 10, 2023, 08:35:29 AM »

it should only be 30,000 not 30,000,000 so it should work, I'll have to investigate more.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #62 on: February 16, 2023, 01:20:10 PM »

Its theoretically possible I'll upload my current build of Xanadu Live to https://swgio.com today?
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #63 on: February 17, 2023, 02:43:36 PM »

Here's an overview of our publishing platform we are designing:





Going to post a glitzier video once everything is working.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #64 on: February 18, 2023, 02:15:11 AM »

Wow, Firefox died while I was typing this up so I guess I'll try again SISYPHUS STYLE:

Here's a bit about how the Multi-Threading works in Xanadu Live.

"Work_Chunk" -> The terrain is cut into Chunks that are easier to deal with, so each Chunk of terrain is considered a piece of work to do for the worker threads. These Chunks are a MonoBehavior in Unity and attached to a GameObject.

"Command_Queue" -> Each "Work_Chunk" has its own "Command_Queue" as a private member which is a c# concurrent queue that allows the main thread to add commands like "Add Mass Blob" "Paint Grass Color" "Modify Terrain Color" and so on.

"Work_Queue" -> There is also one static queue that manages all the Work_Chunks that need to be modified, loaded, or cleaned.

"Worker_Thread" -> There are a given number of Worker_Threads, right now I think its set to 20? Each Worker_Thread goes through the following loop forever:

1 Lock the Work_Queue
2 Sort the Work_Queue based on which Work_Chunk is closest to the camera.
3 Check if the Work_Chunk needs HD Load or Proc gen.
4 Remove the front of Work_Queue and mark it as TODO.
5 Unlock the Work_Queue
6 If TODO needs HD Load, load it.
7 If TODO needs Proc Gen, generate it.
8 If TODO has commands in the Command_Queue, execute them.
9 If TODO is dirty regenerate the mesh data.
10 If this thread didn't do anything, just SLEEP(20)

In the main thread (the unity Update function) the following happens each frame

1 If the Work_Chunk is Unloaded, mark it as needing loading and put it in the Work_Queue
2 If the Work_Chunk has commands in the Command_Queue, mark it as dirty and put it in the Work_Queue
3 If the Work_Chunk has mesh data that isn't pushed to the Unity mesh structure, push that data, and mark the chunk Clean
4 SLEEP(0) // Just to make sure worker threads get a chance to run.

Also in the main thread, as the user modifies the terrain, this is added to the appropriate Work_Chunk's Command_Queue.

Experiments:
1 I think I might make the Work_Queue a Concurrent Queue and get rid of the locking, because sorting based on camera distance might not be needed, particularly if I sort them before adding them to the Queue, that should be close enough.
2 There is a little finagling to make sure there is only one HD Load working at a time, which may not be needed? It may not be needed to block only one HD Load at a time, I think the HD Load code will block for me? Not sure there either.

Let me know if I'm making any mistakes here!
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #65 on: February 18, 2023, 08:31:57 AM »





So I'm thinking about the LoZ/Pokemon Gating system for Xanadu: the formula is that you run into an obstacle, and then you get an item that lets you pass that obstacle later. Usually there is only one gate for each item, example:

Player runs into tall grass that blocks the path, Player is given a sword, Player backtracks and cuts the tall grass.

This loop runs over and over in the game, sometimes it will be extended:

Obstacle 1
Obstacle 2
Item 2 -> Beats Obstacle 2
Item 1 -> Beasts Obstacle 1

Sometimes there is more than one gate unlocked at once (A and B can be done in either order):
Obstacle A
Obstacle B
Item AB -> Beats both Obstacle A and Obstacle B

So this does a good job of stopping the player from proceeding till they have the right items and know how to use them. But in my old age I get tired of how controlled and linear this kind of gating works. So I'm thinking about levels of mastery of various items opening multi-layered gates that you can sequence break through.

Obstacle 1a
Obstacle 1b
Obstacle 1c
Item 1 -> No skill required to beat Obstacle 1a, Medium skill required to beat Obstacle 1b, High skill required to beat Obstacle 1c

Then the branching paths of the game can have a lot more permutations because one player might be only able to do 1a, so they proceed like LoZ from gate to gate, whereas a player who can beat gate 1c gets more unstructured play options and rewards for more experimental play options, extra in game resources and so on.

So I think I'm going to do a skill based gating system rather than the simple LoZ stuff, which will keep the game interesting enough, structured but with a lot of options to break the structure and do you own thing if you have the talent.

Whaddaya think?

Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #66 on: February 18, 2023, 08:43:48 AM »

Item List for Xanadu (I'll edit this post to add more):

Blob Builder -> Builds big round chunks of terrain.
 (I'm thinking that blobs will be marked to build and you have to have citizens build the actual terrain.)
 Can access new locations by building ramps.
 Can build walls to prevent AI from getting to various areas.
 Can build bridges over gaps in terrain.

Grass Planter -> Paints the terrain to be a grassy field.
 (Grass will not grow without help of Botanists)
 Creates some kind of bonus/help for AI characters (They get health or some kind of boost)
 Spawns resources? (Little flowers grow in the grass that can be harvested over time)

Desert Painter -> Paints the terrain to be a desert.
 Can harvest sand. (Why is sand useful? Maybe Sand is used to build blobs?)
 Speed bonus? (Easier to traverse?)

Column Builder -> Builds vertical Columns.
 Allows for taller structures.
 Height of towers somehow affects the range of where you can build?

Hammer -> Chips away at terrain one marching cube at a time.
 Maybe there is a barrier you can knock down?
 Can destroy rocks that block the way.

Swatter -> Fly swatter that helps you tame and attack wildlife.
 Lets you tame/punish wild creatures.

Trap/Fence -> Some kind of device that controls and helps level LVL1 creatures. Maybe you create a fence behind your car that encloses around creatures. Maybe you also have to throw a pokeball like thing.
 Lets you create Lvl2 citizens from wild creatures.

Structures -> Your citizens need buildings to live in:
 Sleeping Station
 Medical Bay
 Food Storage
 Zoot Storage
 Town hall.
(Maybe you have to build flat areas and then mark them for a given structure as in Dwarf Fortress.)

« Last Edit: February 19, 2023, 09:28:59 AM by michaelplzno » Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #67 on: February 19, 2023, 09:20:48 AM »

Characters
The Stars -> There are a set of 6 Stars each has 3 levels of maturity that have Invaded Xanadu that you can tame to join your society. I'm thinking of drawing from Startopia in terms of the citizens roaming around and living their lives.

Matchy Star -> Engineer, Helps with building structures for citizens. Actually builds the stuff your people use.
Level 1, Destroys/sabotages structures.
Level 2, Can Repair and Fix stuff.
Level 3, Can build new structures.

Pirate Planet -> Finance, Helps with hoarding loot and resources. Moves and organizes resources.
Level 1, Breaks into hoards of money and takes resources.
Level 2, Can hoard/organize money stashes.
Level 3, Can harvest/mine more money and resources.

Guru Moon -> Mystic, Uses Psychic blasts to stop crime/predicts troubling events and notifies the player that things will happen.
Level 1, Confuses/tricks citizens and causes them to forget their tasks.
Level 2, Can blast trouble makers.
Level 3, Can help convert/trap new citizens that are still level 1.

Spacy Galaxy -> Diplomat, Helps mood and assignment of jobs to citizens.
Level 1, Causes riots, can de-level stars and cause them to become wild.
Level 2, Helps with assigning jobs and organizing Stars that are not working.
Level 3, Helps level up stars.

Loony Lander -> Botanist, Grows plants, crops, and other harvested resources.
Level 1, Grows wild plants wherever that are destructive.
Level 2, Grows helpful plants in designated areas.
Level 3, Can research new tech, plants.

Doctor UFO -> Doctor, Helps deal with plagues/ nutrition/ health concerns.
Level 1, Just drains resources/Uses a lot of support from the civ.
Level 2, Can heal sick stars.
Level 3, Develops vitamins/boosters that make citizens work better and faster and happier.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #68 on: February 19, 2023, 02:24:25 PM »

So I'm thinking of making the game a bit more like startopia for how you manage your civ, But maybe there are wild creatures in Xanadu, random mineral deposits, and unique quest beacons out in the wild?

I need to better define THE WILDS OF XANADU.

Also maybe if you don't build a tower in your civ, there are lightning strikes on the more wild terrain of Xanadu. Maybe there is some way to flatten the terrain that builds a sort of tiled structure on the ground. With the hammer? Maybe there is a steamroller attachment to the cars?

Edit: maybe the town hall starts to terraform the terrain around it as your civ grows, and sends out roads and flattens the land?
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #69 on: February 23, 2023, 12:57:17 PM »



Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #70 on: February 27, 2023, 01:29:40 PM »

Here are the current list of issues for SWGIO that we need fixed in the next round of dev:

Big issues:
  • Copy protection - we need a way to verify users in the backend.
  • HTML5 game links - we need a way to upload a ZIP of a html5 package and display it on the actual product page.
  • Each product page has a URL for version number that gives info on how to link to the current build for the Dishwasher updater system.
  • Invite system - Each user has a given number of invites they can send out, and a form for sending out invites, also there are ways to earn more invites and also ways to unlock invites if you beat a game on the network.
  • Achievements - System for uploading and creating cheevos in the utensil drawyer and allowing games to unlock them or mark progress in them.
  • Cloud Save - System for saving a chunk of data for a user, doesn't have to be a big amount of data.
  • Leaderboards - System for uploading high (or low) scores to a leaderboard. And a system for creating them in the utensil drawyer.
  • Email digest of network activity - Every day or Every week, or right when they happen, you get emails telling you about notifications and interactions. Can be set by users, defaults to daily digest. Does not send email if nothing has happened.

Medium Issues:

  • Being able to notify a user by saying @username
  • @username links to the profile page of the user.
  • Profile pages is combined with the wall of a user so that you can see their description and header and then scroll down and see their posts.
  • Comment directly to people's walls rather than post to everyone.
  • Meta Cheevos - Some achievements that are based on what you do in the actual network, achievements for posting the first time, posting 10 times posting 100 times. Achievements for inviting people.
  • Unlockable Badges - Some badges and flair is based on what achievements you have unlocked.
  • Pictures in comments.
  • Likes on comments.

Small issues:

  • Dark mode
  • Some small ui fixes: Bigger PFP in post, buttons move onto next line when the window is smaller.

 
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #71 on: March 08, 2023, 10:42:38 AM »

I had a dream about designing a font that was made from geometry in game and I might play around with it just for kicks even though there are probably better ways to do fonts.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #72 on: March 14, 2023, 08:28:22 AM »

Here is the font I dreamed up. Yes I literally had a dream where I was working on this font and decided to make it IRL.



Each Letter is Made Up of Slabs, each Slab is 4 points of a rectangle. The Slabs are on a 6 by 6 grid where 5 is the highest coordinate and 0 is the minimum. So I went into the code and wrote up a little script that creates each letter from slabs. Then when you write text its turned into geometry and added to the unity mesh. Here is the code that creates the slabs that then make up the letter Z:

Code:
{
    FontLetter fl = new FontLetter();

    {
        FontSlab fs = new FontSlab();
        fs.p00 = new SlabPoint(3, 5);
        fs.p10 = new SlabPoint(3, 4);
        fs.p11 = new SlabPoint(0, 0);
        fs.p01 = new SlabPoint(0, 1);

       fl.AddSlab(fs);
    }

    {
        FontSlab fs = new FontSlab();
        fs.p00 = new SlabPoint(0, 1);
        fs.p10 = new SlabPoint(3, 1);
        fs.p11 = new SlabPoint(3, 0);
        fs.p01 = new SlabPoint(0, 0);

        fs.Rotate();
        fs.Flip();

        fl.AddSlab(fs);
    }

    {
        FontSlab fs = new FontSlab();
        fs.p00 = new SlabPoint(0, 5);
        fs.p10 = new SlabPoint(3, 5);
        fs.p11 = new SlabPoint(3, 4);
        fs.p01 = new SlabPoint(0, 4);

        fs.Rotate();
        fs.Flip();

        fl.AddSlab(fs);
    }

    _Alphabet['Z'] = fl;
}

Anyway the resulting font is utilitarian but also sort of cool in its style, kind of like a soviet/greek/powerful font that fits the XANADU theme really well imo:



Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #73 on: March 14, 2023, 08:35:46 AM »

Played with how thick the "Slabs" are each slab is 6 quads, 2 caps on the end, 2 front pieces, 2 back pieces.

Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #74 on: March 14, 2023, 11:14:28 AM »

Thinking of making the "Commandment" tool which lets you place rules on various regions of terrain. So you can post a rule saying grass will grow here and the terrain will slowly turn to grass. Let me make an icon for this tool.
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #75 on: March 14, 2023, 12:31:29 PM »

If a commandment is unreadable maybe it corrupts the terrain? Suggested by Sammy. I'm also thinking of adding a character I designed based on the old Easter Isle Moe Statues, "MOE THE DECIDER"



Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #76 on: March 14, 2023, 12:32:50 PM »

Here is the commandment tool's icon. Maybe you unlock it by talking to MOE THE DECIDER?

Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #77 on: March 14, 2023, 12:54:58 PM »



Could this be the next evolution of MOE THE DECIDER?
Logged

michaelplzno
Level 10
*****



View Profile WWW
« Reply #78 on: March 14, 2023, 06:39:40 PM »

I had a dream where I was part of an art collective and we were doing these exercises about making art that involved playing stupid games with each other: one example was painting on long sticks in groups where we we had big brushes and small canvases, but there were a lot of different games. (They were all stupid.) And the director of the program was someone who had made art I respect, a real artist who I thought was cool. I can't remember the specifics of who it was but it was an artist who made great real work. And the director was talking about how I needed to lose control in order to make good art while we were playing the games. Meanwhile, my team on the canvas exercise with the multiple brushes thing wanted to throw me off the team.

I cornered the director at the end of the exercises and asked him (and he was fighting to not talk to me. He even got a little snack from his wife which he sort of begged for like a little baby, and I was literally rubbing his back just to let me use the logical voice I love using) and I said:

If I lose control and use only my emotions to make stuff, lets ask logic what's going to happen. Its going to be destructive, its going to be chaos, and people are going to get hurt, not just powerful people, all kinds of people. I would tear down all these exercises if I were doing what I feel, and possibly hit other participants with sticks and so on. Its not going to be art that makes anyone happy.

And the director angrily said "Yes, lets do that."
Logged

[email protected]
Guest
« Reply #79 on: March 15, 2023, 02:50:11 AM »

Dreams, huh? I dreamed I toured Valve and they were really nice. Then I woke up and realized the opposite was true.

Quote
If a commandment is unreadable maybe it corrupts the terrain?
Does Moe the Decider intelligently interpret your commandments?
Logged
Pages: 1 2 3 [4] 5 6 ... 8
Print
Jump to:  

Theme orange-lt created by panic