You are browsing as a guest. Sign up (or log in) to start making projects!

sol4r_on_hackclub

@sol4r_on_hackclub

Joined June 6th, 2026

  • 42Devlogs
  • 3Projects
  • 2Ships
  • 33Votes
17 yo aspirational Computer Science student, currently working on my A level NEA, Capital Chaos which you can see below, as well as a social media platform to replace all other social medias.
Open comments for this post
Reposted by @sol4r_on_hackclub

35m 46s logged

Thank you all so much for the support!

Framework 12 is on it’s way (and this wait is painful). After 171 hours! 19.54x is actually insane and I appreciate it a lot.

Join the Discord!

I made a discord (click above) and i’ll give you all an early supporter role before I put it out on YouTube and stuff for the “wishlist” when the full game comes out (if you want to stay in touch after stardance is done.

ALSO IF YOU COMMENTED WHILE THE GAME WAS STILL CALLED POCKET CITY DM ME ILL GIVE U A SPECIAL ROLE

The game beta is still up and you can try it out

Currently just doing some minor stuff to the game (Fixed some normal/easy mode not settings correct phases. B2 Bomber should destroy itself and stop the nuke siren once launched), and slowly adding a tutorial but I’m like 90% focused on revising for uni entrance exams

1
2
181
Open comments for this post

35m 46s logged

Thank you all so much for the support!

Framework 12 is on it’s way (and this wait is painful). After 171 hours! 19.54x is actually insane and I appreciate it a lot.

Join the Discord!

I made a discord (click above) and i’ll give you all an early supporter role before I put it out on YouTube and stuff for the “wishlist” when the full game comes out (if you want to stay in touch after stardance is done.

ALSO IF YOU COMMENTED WHILE THE GAME WAS STILL CALLED POCKET CITY DM ME ILL GIVE U A SPECIAL ROLE

The game beta is still up and you can try it out

Currently just doing some minor stuff to the game (Fixed some normal/easy mode not settings correct phases. B2 Bomber should destroy itself and stop the nuke siren once launched), and slowly adding a tutorial but I’m like 90% focused on revising for uni entrance exams

1
2
181
Open comments for this post
Reposted by @sol4r_on_hackclub

3h 24m 50s logged

BETA TEST! Nvm I have to devlog my final changes

But lemme talk to those stardance reviewers real quick.

Scroll down to see the endless content of my story, and all the community feedback (also on my youtube).

Playing the game is a bit of a learning curve so you can watch my videos and stuff on it as well.

I’d say watch this one: Boss Fight for the boss fight and maybe one of the other ones that you find interesting. Maybe this one because it has over 1,000 views and still climbing!

The game is released there but it is windows only for now (i will release linux and maybe mac on the actual release game don’t worry but I’m super restricted for time right now) SKIP IF YOU’RE ON LINUX / MAC

For everyone:

Changes:
Amended GameAudioManager to adjust for max voices which uses a List based system that appends and unappends.

Boss fight also toggles and untoggles the game audio dependant on each audio source, because the game could currently have hundreds or even thousands of audio source which is really bad optimisation.

So each audio source that I want to track has a ManagedAudioSource attached which automatically registers and unregisters itself from the GameAudioManager.

I also edited the boss fight to make it a touch harder and amended the moves ;)

And come and beta test NOWWW. leave all your comments, suggestions etc. on THE NEW DISCORD COMMUNITY!! or youtube, i’ll read it all and, again, thank you all for your support .

I don’t know what to put as the image so here.

5
1
177
Ship

Welcome to Capital Chaos! One of Stardance’s most awaited projects ;) (hopefully anyways)

We’ve got chaos, a bunch of random events, a boss fight and so much more for you to explore.

SKIP if you are on Linux/MacOS (or you can vote based on the videos - completely up to you) as I only have a windows executable for now.

I am honestly super proud of this, and the community built around this game. I hope you enjoy it as well.

There have been TONNES of challenges, such as pathfinding, the initial grid also seemed really daunting. To the vacancy count which was literally plaguing me for the past MONTH and got fixed today (it was one line… i know.. maybe I should have used AI).

But besides, it’s a sick project. I hope you all love it. Unzip the file in the release and it should be good to go.

READ THE README FOR INSTRUCTIONS AND CONTROLS!! THERE IS NO TUTORIAL

Read the story, watch the videos if you can and just enjoy the game! It will be on steam in 8-9 months so maybe subscribe?

  • 39 devlogs
  • 171h
  • 19.54x multiplier
  • 3336 Stardust
Try project → See source code →
Open comments for this post

3h 24m 50s logged

BETA TEST! Nvm I have to devlog my final changes

But lemme talk to those stardance reviewers real quick.

Scroll down to see the endless content of my story, and all the community feedback (also on my youtube).

Playing the game is a bit of a learning curve so you can watch my videos and stuff on it as well.

I’d say watch this one: Boss Fight for the boss fight and maybe one of the other ones that you find interesting. Maybe this one because it has over 1,000 views and still climbing!

The game is released there but it is windows only for now (i will release linux and maybe mac on the actual release game don’t worry but I’m super restricted for time right now) SKIP IF YOU’RE ON LINUX / MAC

For everyone:

Changes:
Amended GameAudioManager to adjust for max voices which uses a List based system that appends and unappends.

Boss fight also toggles and untoggles the game audio dependant on each audio source, because the game could currently have hundreds or even thousands of audio source which is really bad optimisation.

So each audio source that I want to track has a ManagedAudioSource attached which automatically registers and unregisters itself from the GameAudioManager.

I also edited the boss fight to make it a touch harder and amended the moves ;)

And come and beta test NOWWW. leave all your comments, suggestions etc. on THE NEW DISCORD COMMUNITY!! or youtube, i’ll read it all and, again, thank you all for your support .

I don’t know what to put as the image so here.

5
1
177
Open comments for this post
Reposted by @sol4r_on_hackclub

8h 48m 12s logged

Final DevLog before First Ship - Boss Battle

I don’t think words can explain what I made so click here to watch a video on my probably final major addition (no pressure)
& also help with a small dilemma I have.

NO!! that does not mean this game will stop development, but i think i finally have enough hours (+10-15 more safety) to get a Framework 12! (and then i will be able to crack on with entrance exams - so i guess development will slow a touch).

Of course I’ll ship once the game is polished enough.

You might see a devlog or two from the “Capital Chaos Website” - follow me ;)

I really hope you guys all enjoy it and now I need to do the readme and stuff. I also realised I was one of the most viewed on Stardance which is honestly amazing and I appreciate all of the support :)

And thank you to all the new friends I’ve made and all the followers and commenters. It’s honestly been insane.

8
3
536
Open comments for this post

8h 48m 12s logged

Final DevLog before First Ship - Boss Battle

I don’t think words can explain what I made so click here to watch a video on my probably final major addition (no pressure)
& also help with a small dilemma I have.

NO!! that does not mean this game will stop development, but i think i finally have enough hours (+10-15 more safety) to get a Framework 12! (and then i will be able to crack on with entrance exams - so i guess development will slow a touch).

Of course I’ll ship once the game is polished enough.

You might see a devlog or two from the “Capital Chaos Website” - follow me ;)

I really hope you guys all enjoy it and now I need to do the readme and stuff. I also realised I was one of the most viewed on Stardance which is honestly amazing and I appreciate all of the support :)

And thank you to all the new friends I’ve made and all the followers and commenters. It’s honestly been insane.

8
3
536
Open comments for this post
Reposted by @sol4r_on_hackclub

3h 50m 50s logged

Game Sountrack?

But before I talk about that, lemme just say the game audio is almost finished, we have menu sounds for clicks and stuff, and i added support for main menu music. The firetruck hoses actually do stuff, floods sound like floods, theres some peaceful background nature sounds and yeah it makes the game feel so much nicer.

although i forgot place sounds which was a massive oversight.

also my wifi is still working. no idea why, but not complaining.

and i’m cooking on a soundtrack lowk
although none of it seems correlated in any way and idk how i’ll make it fit into this game but you know what maybe it’ll just all go into some random album. None of the hours put into these songs count but its okay. i’m no pro tho so. all i’ll say is i love some bass

4
2
562
Open comments for this post

3h 50m 50s logged

Game Sountrack?

But before I talk about that, lemme just say the game audio is almost finished, we have menu sounds for clicks and stuff, and i added support for main menu music. The firetruck hoses actually do stuff, floods sound like floods, theres some peaceful background nature sounds and yeah it makes the game feel so much nicer.

although i forgot place sounds which was a massive oversight.

also my wifi is still working. no idea why, but not complaining.

and i’m cooking on a soundtrack lowk
although none of it seems correlated in any way and idk how i’ll make it fit into this game but you know what maybe it’ll just all go into some random album. None of the hours put into these songs count but its okay. i’m no pro tho so. all i’ll say is i love some bass

4
2
562
Open comments for this post
Reposted by @sol4r_on_hackclub

2h 37m 14s logged

I’m getting new wifi lol, & 150 hours

so yeah i won’t be here and probably will have to post a 10 hour thing

BUT on the plus side, we got a nice death screen that has a bunch of quotes that you can read below

    [SerializeField] private string[] quotes = { 
        "Opportunities multiply as they are seized \n - Sun Tzu",
        "If you are going through hell, keep going \n - Winston Churchill",
        "No empire was built on the first draft",
        "Fall seven times, stand up eight",
        "That which does not kill us, makes us stronger \n - Friedrich Nietzsche",
        "Out of ash, a new foundation",
        "I have not failed. I just found 10,000 ways that don't work \n - Thomas Edison",
        "A man is not finished when he is defeated. He is finished when he quits \n - Richard M. Nixon",
        "It does not matter how slowly you go as long as you do not stop \n - Confucius",
        "Out of difficulties grow miracles \n - Jean de La Bruyère",
        "The greater the obstactle, the more glory in overcoming it \n - Molière",
        "A Pocket Sized City is too small for your ambition. Build again \n - The Dev",
        "Success usually comes to those who are too busy to be looking for it \n - Henry David Thoreau",
        "Go big or go home",
        "You can't give up just yet. Stay determined... \n - Undertale"
    };

Maybe you’ll catch the little easter egg there as well ;)

Working on adding game audio!!

and probably finally enough hours to get the framework 12 (btw I wouldn’t recommend this as a daily laptop (f13 better), I just want something I can write on lol)

7
2
620
Open comments for this post

2h 37m 14s logged

I’m getting new wifi lol, & 150 hours

so yeah i won’t be here and probably will have to post a 10 hour thing

BUT on the plus side, we got a nice death screen that has a bunch of quotes that you can read below

    [SerializeField] private string[] quotes = { 
        "Opportunities multiply as they are seized \n - Sun Tzu",
        "If you are going through hell, keep going \n - Winston Churchill",
        "No empire was built on the first draft",
        "Fall seven times, stand up eight",
        "That which does not kill us, makes us stronger \n - Friedrich Nietzsche",
        "Out of ash, a new foundation",
        "I have not failed. I just found 10,000 ways that don't work \n - Thomas Edison",
        "A man is not finished when he is defeated. He is finished when he quits \n - Richard M. Nixon",
        "It does not matter how slowly you go as long as you do not stop \n - Confucius",
        "Out of difficulties grow miracles \n - Jean de La Bruyère",
        "The greater the obstactle, the more glory in overcoming it \n - Molière",
        "A Pocket Sized City is too small for your ambition. Build again \n - The Dev",
        "Success usually comes to those who are too busy to be looking for it \n - Henry David Thoreau",
        "Go big or go home",
        "You can't give up just yet. Stay determined... \n - Undertale"
    };

Maybe you’ll catch the little easter egg there as well ;)

Working on adding game audio!!

and probably finally enough hours to get the framework 12 (btw I wouldn’t recommend this as a daily laptop (f13 better), I just want something I can write on lol)

7
2
620
Open comments for this post
Reposted by @sol4r_on_hackclub

3h 52m 46s logged

INSANE tree optimisations

Went from 60-80 fps @ 4K to 400-450 (in game). Yes a 6 to 7x increase.

How you ask?

GPU Mesh Instance drawing offloading the CPU work of handling thousands of game objects.

In English, I’m no longer spawning thousands of tree objects, but instead telling the GPU to draw the tree instances every frame. This seems quite unintuitive because you’re now drawing thousands of things every second. BUT this means that there are no game objects, so the CPU doesn’t even know that these exist. Also the GPU draws it thousands of times anyways.

A game object handles transforms, rotations, etc. that the CPU has to keep track of whether it is active or not. This had the added benefit of the trees having no overhead when the trees are disabled, so you regain all of your framerate!

Also I used some neat little script that combined the meshes all together in the GameObject prefab.

Now it really should be able to run on your potato PC/Laptop.

Combine script

using UnityEngine;

public class MeshCombineUtility : MonoBehaviour
{
    [ContextMenu("Combine Children Meshes")]
    public void Combine()
    {
        MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
        CombineInstance[] combine = new CombineInstance[meshFilters.Length];

        Matrix4x4 matrix = transform.worldToLocalMatrix;

        for (int i = 0; i < meshFilters.Length; i++)
        {
            if (meshFilters[i].gameObject == gameObject) continue;
            combine[i].mesh = meshFilters[i].sharedMesh;
            combine[i].transform = matrix * meshFilters[i].transform.localToWorldMatrix;
        }

        Mesh combinedMesh = new Mesh();
        combinedMesh.CombineMeshes(combine, true, true);

        #if UNITY_EDITOR
        string directory = $"Assets/Assets/Mesh/Tree/{gameObject.name}.asset";
        UnityEditor.AssetDatabase.CreateAsset(combinedMesh, directory);
        UnityEditor.AssetDatabase.SaveAssets();
        Debug.Log($"Combined mesh saved to {directory}");
        #endif
    }
}

Draw section of GPU Mesh Instancing

    private void DrawTreeMeshes()
    {
        if (treeMesh == null || treeMaterial == null) return;

        foreach (var kvp in generatedChunks)
        {
            ChunkData chunk = kvp.Value;
            if (chunk.spawnedTrees == null || chunk.spawnedTrees.Count == 0) continue;

            int batchSize = 1023;
            int totalTrees = chunk.spawnedTrees.Count;

            for(int i = 0; i < totalTrees; i+=batchSize)
            {
                int length = Mathf.Min(batchSize, totalTrees - i);
                Matrix4x4[] subMatrices = new Matrix4x4[length];

                for (int j = 0; j < length; j++)
                {
                    subMatrices[j] = chunk.spawnedTrees[i + j].matrix;
                }

                int meshIndex = Mathf.Abs(chunk.chunkCord.GetHashCode() + i) % treeMesh.Length;

                Graphics.DrawMeshInstanced(treeMesh[meshIndex], 0, treeMaterial, subMatrices, length);
            }
        }
    }
9
4
1192
Open comments for this post

3h 52m 46s logged

INSANE tree optimisations

Went from 60-80 fps @ 4K to 400-450 (in game). Yes a 6 to 7x increase.

How you ask?

GPU Mesh Instance drawing offloading the CPU work of handling thousands of game objects.

In English, I’m no longer spawning thousands of tree objects, but instead telling the GPU to draw the tree instances every frame. This seems quite unintuitive because you’re now drawing thousands of things every second. BUT this means that there are no game objects, so the CPU doesn’t even know that these exist. Also the GPU draws it thousands of times anyways.

A game object handles transforms, rotations, etc. that the CPU has to keep track of whether it is active or not. This had the added benefit of the trees having no overhead when the trees are disabled, so you regain all of your framerate!

Also I used some neat little script that combined the meshes all together in the GameObject prefab.

Now it really should be able to run on your potato PC/Laptop.

Combine script

using UnityEngine;

public class MeshCombineUtility : MonoBehaviour
{
    [ContextMenu("Combine Children Meshes")]
    public void Combine()
    {
        MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>();
        CombineInstance[] combine = new CombineInstance[meshFilters.Length];

        Matrix4x4 matrix = transform.worldToLocalMatrix;

        for (int i = 0; i < meshFilters.Length; i++)
        {
            if (meshFilters[i].gameObject == gameObject) continue;
            combine[i].mesh = meshFilters[i].sharedMesh;
            combine[i].transform = matrix * meshFilters[i].transform.localToWorldMatrix;
        }

        Mesh combinedMesh = new Mesh();
        combinedMesh.CombineMeshes(combine, true, true);

        #if UNITY_EDITOR
        string directory = $"Assets/Assets/Mesh/Tree/{gameObject.name}.asset";
        UnityEditor.AssetDatabase.CreateAsset(combinedMesh, directory);
        UnityEditor.AssetDatabase.SaveAssets();
        Debug.Log($"Combined mesh saved to {directory}");
        #endif
    }
}

Draw section of GPU Mesh Instancing

    private void DrawTreeMeshes()
    {
        if (treeMesh == null || treeMaterial == null) return;

        foreach (var kvp in generatedChunks)
        {
            ChunkData chunk = kvp.Value;
            if (chunk.spawnedTrees == null || chunk.spawnedTrees.Count == 0) continue;

            int batchSize = 1023;
            int totalTrees = chunk.spawnedTrees.Count;

            for(int i = 0; i < totalTrees; i+=batchSize)
            {
                int length = Mathf.Min(batchSize, totalTrees - i);
                Matrix4x4[] subMatrices = new Matrix4x4[length];

                for (int j = 0; j < length; j++)
                {
                    subMatrices[j] = chunk.spawnedTrees[i + j].matrix;
                }

                int meshIndex = Mathf.Abs(chunk.chunkCord.GetHashCode() + i) % treeMesh.Length;

                Graphics.DrawMeshInstanced(treeMesh[meshIndex], 0, treeMaterial, subMatrices, length);
            }
        }
    }
9
4
1192
Open comments for this post
Reposted by @sol4r_on_hackclub

1h 28m 32s logged

You won’t believe it. I got it working FIRST TRY

That’s actually crazy to be honest. Tells you how much expirience those 8 hours of menu development have given me.

Someone give me a Unity menu doctorate or sum

But on a serious note, we have game difficulty selection and its all nice and self contained. With controller support of course.

You can see we have Previous Saves but that isn’t really functional yet.

One of the things I learnt is to never rely on the UI giving you the data, only the click, so you’d manually add the elements and then call .value or .isOn respective to the component, and the same goes for dropdowns although I didn’t use one here.

Let me know if you think it looks clean or any improvements to the UI readability, etc.

4
2
320
Open comments for this post

1h 28m 32s logged

You won’t believe it. I got it working FIRST TRY

That’s actually crazy to be honest. Tells you how much expirience those 8 hours of menu development have given me.

Someone give me a Unity menu doctorate or sum

But on a serious note, we have game difficulty selection and its all nice and self contained. With controller support of course.

You can see we have Previous Saves but that isn’t really functional yet.

One of the things I learnt is to never rely on the UI giving you the data, only the click, so you’d manually add the elements and then call .value or .isOn respective to the component, and the same goes for dropdowns although I didn’t use one here.

Let me know if you think it looks clean or any improvements to the UI readability, etc.

4
2
320
Open comments for this post
Reposted by @sol4r_on_hackclub

10h 18m 15s logged

I HATE Menus (in Unity at least)

Genuinely hate them. But yeah we got settings menu working (which genuinely took like 5-6 hours because of stupid unity legacy stuff vs new stuff and then unity 6 vs 2023 version stuff i was used to) AHHHH

I don’t remember it being this painful in Godot to be honest so maybe Godot is better for that?

i had to get rid of VSync because it only worked on refresh.

Created a debug menu to test performance, just to see that the only useful thing there was FPS and like RAM usage, and some engine stuff like active Rigidbodys. I couldn’t see the CPU utilisation or GPU utilisation which was… the thing I wanted to see.

Although don’t worry performance does seem to be reasonable and early to mid game I can push over 1000 FPS on potato settings (specs at bottom if you care about them). It does obviously go down as the game continues on, but I think it’s quite optimised. Even with shadows its on 500+ FPS with a mid sized down. Although adding trees will quarter your FPS numbers. but it looks pretty so there’s your tradeoff. Although problematically if you turn trees off and you had already generated trees the fps stays low even though you’re not rendering it? I don’t know why unity is so weird.

The game is quite unbalanced, but we’re in the final polishing stages (my target is 150 hours for the framework and hopefully it’s secure! (vote nice and high thanks - i did put a lot of effort into this game.)

Up next:
Difficulty selection
Polishing
Rebalancing updates
Release!

0
1
134
Open comments for this post

10h 18m 15s logged

I HATE Menus (in Unity at least)

Genuinely hate them. But yeah we got settings menu working (which genuinely took like 5-6 hours because of stupid unity legacy stuff vs new stuff and then unity 6 vs 2023 version stuff i was used to) AHHHH

I don’t remember it being this painful in Godot to be honest so maybe Godot is better for that?

i had to get rid of VSync because it only worked on refresh.

Created a debug menu to test performance, just to see that the only useful thing there was FPS and like RAM usage, and some engine stuff like active Rigidbodys. I couldn’t see the CPU utilisation or GPU utilisation which was… the thing I wanted to see.

Although don’t worry performance does seem to be reasonable and early to mid game I can push over 1000 FPS on potato settings (specs at bottom if you care about them). It does obviously go down as the game continues on, but I think it’s quite optimised. Even with shadows its on 500+ FPS with a mid sized down. Although adding trees will quarter your FPS numbers. but it looks pretty so there’s your tradeoff. Although problematically if you turn trees off and you had already generated trees the fps stays low even though you’re not rendering it? I don’t know why unity is so weird.

The game is quite unbalanced, but we’re in the final polishing stages (my target is 150 hours for the framework and hopefully it’s secure! (vote nice and high thanks - i did put a lot of effort into this game.)

Up next:
Difficulty selection
Polishing
Rebalancing updates
Release!

0
1
134
Open comments for this post
Reposted by @sol4r_on_hackclub

5h 55m 56s logged

NEW NAME!!! Flash Floods + Main Menu

If you remember, Pocket City is a game that already exists so now it’s called Capital Chaos. Thank you YouTube comments! And all of you as well, for the suggestions.

Ofc new video to go with it: watch by clicking here!

I created flash floods that.. well flood the entire map. It’s meant to be a little toned down of a disaster, thats more survivable because it gives the game a touch more balance. It stops all services from working, so that could be detrimental during a virus attack. But on the other hand, it stops every single fire and prevents new ones and explosions.

A lifesaver if theres a nuke, it gets completely nullified.

Also new main menu, I think it looks pretty neat. Especially compared to the old one.

9
3
281
Open comments for this post

5h 55m 56s logged

NEW NAME!!! Flash Floods + Main Menu

If you remember, Pocket City is a game that already exists so now it’s called Capital Chaos. Thank you YouTube comments! And all of you as well, for the suggestions.

Ofc new video to go with it: watch by clicking here!

I created flash floods that.. well flood the entire map. It’s meant to be a little toned down of a disaster, thats more survivable because it gives the game a touch more balance. It stops all services from working, so that could be detrimental during a virus attack. But on the other hand, it stops every single fire and prevents new ones and explosions.

A lifesaver if theres a nuke, it gets completely nullified.

Also new main menu, I think it looks pretty neat. Especially compared to the old one.

9
3
281
Open comments for this post
Reposted by @sol4r_on_hackclub

9h 22m 58s logged

Nukes… from a plane

A famous plane. The B2 Bomber.

Idk gng I got bored.

No but it drops a nuke that decimates everything in a decent radius and then sets everything in a bigger radius on fire, and now we have a new rare event called a “military invasion”.. that spawns like 8 helicotpers AS WELL as the b2 bomber.

The B2 Bomber starts a few clicks out and then flies toward the set target building. Then it drops the nuke, and you have a few seconds to try and kill the nuke before it kills you, and on impact (yes we are finally using rigidbodys as they are intended) it explodes.

You better have that turret system ready.

Of course, it’s clearly not enough. So maybe I’ll add a anti-missile system as a YouTube comment said.

Speaking of YouTube, thank you for all the support :) 100+ comments goes crazy, and we’re on 73 subs up from the previous 29 literally 3 weeks ago.

Not subscribed? Help a fellow dev out: TechScope Channel

1
2
243
Loading more…

Followers

Loading…