Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Cluster Chaos: for web written in SCL

A topic by sclanim created Dec 20, 2023 Views: 372 Replies: 8
Viewing posts 1 to 9
(1 edit)

13 years ago I made this game for Flash called Cluster Chaos 


I took the sprite engine from the game to make Canvas Language which I use to make gifs and games.

Now I'm re-making Cluster Chaos using SCL. The play will be a bit different but I think it has to be because people use their fingers to play.

The following captures are already part of the new game:


(this is the development studio)


I don't just want people to play my game someday, I want people to use my game engine too. So as I build a game using it, you'll see how that's done. 

You can play the game as I work on it (and even change it if you want) at https://canvaslanguage.com/studio/clusterchaos . You can edit the source code in the Advance tab, upload your own replacement images, and download/upload your own project files to save your changes. No account or login is required. You just can't publish it - it's just for experimenting, for now.

If you have any suggested changes for the game, let me know. Solo is lonely and sometimes bereft of ideas.


(the partial shields need to be fixed)

(maybe a bit ugly, the Decorate button may disappear altogether)

(I actually like the color scheme on here)

The "story" of the game is that ions from the nebula are your fuel, so you have to earn ions thru fighting as you try to reach the nebula.

Post #2

Today I did a few small aesthetic changes and one big change. The important change was how to handle shielding on ships.

I'm not sure if I think the new style is better looking but it is easier work with and much faster to render. Drawing, turns out is very processor intensive and was causing performance issues when several attackers were drawn in the same frame.

Old code:

draw onto _sprite
         strokestyle "rgba(200,200,255,.5)"
         linewidth 2
         circle 17,20,23+_repeat*3
enddraw
// 5 shield rings would mean this is called 5 times

New code:

update sprite _sprite.shieldContainer where alpha=arg.1*2*10

Much much much much faster, and better looking. Instead of calling this 5 times, we'd just pass in '5' as the first (and only) argument.

btw, "_sprite" is a built in that always refer to the current sprite being worked on.

https://canvaslanguage.com/studio/clusterchaos

Trying to decide what story to go with. The original Flash game had a story that started like this, slightly altered:

It was only a short time ago that planets of the cluster were first visited by the Sav. Their ships were not large or powerful but they could travel between stars in mere hours. This gave the Sav their power. Though their weapons were little more powerful than the other planets the came quickly to dominate. They called their travel technology "warp" and they held it secret and held it close.
Then one day their advantage was lost. A Sav vessel was disabled and then "rescued". It was not long before warp technology was stripped and disseminated through-out the cluster. All was not lost for the Sav. By then their influence was vast through economic dominance nurtured through their past monopoly on warp. From a trading empire they shifted to military power. What they couldn't dominant by economy and warp they dominated by force of arms.
The planets under the Sav Influence and those outside lost their balance. Whereas before warp they had no contact with each other except through the Sav, now they discovered each other. Sometimes trading, sometimes fighting. Borders, influences, wars and unrest abound. The Sav treat them as misbehaving children but they are growing up fast and the Sav are losing control. Militaries, rebels, militias, privateers and pirates are all at work. A new equilibrium seeking itself is now disrupted: a ship has been found.
From somewhere, entering the cluster, floated an unknown vessel. Collected by subjects of the Sav it was held awaiting transfer until stolen by  privateers. You are those privateers. And your new ship is powerful.

(I'm so sorry that so much of that was written in a passive voice)

OR

A simple story with none of the political stuff.

The decision will affect missions design.

I decided to forsake a complicated story and instead go with a game that is more strategy, economic.

The game will have the goal of going from from A to B through a series of missions, M1-Mx. User will be able choose the order of the missions that is best for their status (loadout, defense etc). The hard part  is finding a challenging and engaging balance.

Something like:

(AttackerPower+AttackerDefense) - (YourPower+YourDefense) = Difficulty

Then place an expectation of user power+defense to be at particular levels having completed x number of missions.

Plus, I need a UI and reward system that keeps drawing players forward.

(+1)

Nothing quite like the holiday to take one's eyes off the ball.

And now that I'm back at this, I realize that I should make this game for portrait mode. Or should I keep it as a desktop/browser game? I don't know. Can the game work in both modes?.... it would certainly mean a different challenge in each orientation.  Below are shots, as it is now.

Current dimensions are 800x600. If I make the dimensions 800x800, then just center it on the viewport... would that work? Thoughts? Mission design would be wonky. On the other hand, I could just rotate the combat layer 90degrees for portrait. ... thinking...

New title for the new size of 540x960.

I've been thinking about this a lot lately and I  think I'll trim the concept down again. Originally, if you read above, I was going to emphasize story, then I cut that out for game play only. Now I'm think of changing game play again to be much more purely hyper-casual and to even remove the upgrade shop and $ concept.

Perhaps, the game play will consist just of wiggling your thumb. Upgrades through play only without the shop or much in the way of choices. I'd still like to incorporate the goals somehow though.


(am I over-posting?)

Game Play loop

As I change the type of game, I'm working out how the gameplay will be continuous/forever. I have think have the basic play look figure out. It goes like this: play levels to earn points -> with enough points can choose and upgrade -> fight to actually get the upgrade.


I had wanted to work something in there with the nebula, as was part of the original game (reaching it was the goal), but I'm not sure how to do that yet with forever gameplay.

I may have the first playable levels of this new format online early tomorrow and you'll be able to play with the source code then.

Stay tuned.

I put a newly sized game in the studio. It is 540x960. I've also removed the shopping pages completely and refactored most of the code to better support a more hyper-casual forever-play kind of game.

Here again is the link to the game in the studio https://canvaslanguage.com/studio/clusterchaos

I'll be adding another couple games to the studio this week as well. I'll look into hosting an SCL game jam.

This is probably the most complex game I've tried to create with SCL (which wasn't originally meant for games). Here are a handful of issues I'm finding:

  • No support for callbacks or promises - the Router() routine shown above is my old-fashioned solution to this
  • No separate UI loop - in other words, you can't freeze game play and access a UI.
  • It would be nice to be able to pass references to routines - that's almost a necessity at this point.

It's been a month and I'm still too busy to work on this much but here's an update.