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

Login with username, password and session length

Advanced search

1373115 Posts in 64826 Topics- by 57011 Members - Latest Member: wannaparty

February 21, 2020, 01:48:49 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSTARMUSH - Warlocked-inspired RTS on otherworldly drugs
Pages: 1 2 [3]
Author Topic: STARMUSH - Warlocked-inspired RTS on otherworldly drugs  (Read 4165 times)
Level 0

View Profile
« Reply #40 on: April 19, 2019, 04:35:56 PM »

Thanks for sharing the technical breakdown! I'm impressed you have the stamina to jump from full time dev into a jam and right back again. Keep at it!

Of course Kris with a K! I love nothing more than sharing technical details. There aren't any people in my life at present who enjoy talking about code problems and math love, so it is really fun to get to share it! I will definitely share more in the future. Feel free to ask whatever questions you like at any time.

Hah! I don't know if I do have the stamina, as it took me a couple days to recover, but it helps that development is practically my favorite thing to do, even if I cannot truly do it full time at the moment.

Project looks really cool. I like the unit special/magic stuff a lot and the rewind mechanic seems super unique. The idea of split screen in an RTS is very interesting to me - it is something that I have wanted to try before but it is hard to tell how well it will work. Will there be options for humans vs. cpu and interesting team compositions? You've inspired me to start thinking about RTS design again. How big is the unit tech tree going to be? It looks like quite a limited pool of units right now, is that by design or do you plan to expand it? Looking forward to being able to try your game!

Thanks jb! First, as a side note, I really dig what I've seen of Caesar's Revenge so far. Getting some nice warm and fuzzy Daggerfall vibes from it!

Splitscreen is definitely tricky, especially with so little pixels to work with. This being said, I think that a squished little multiplayer mode has its own sort of appeal, since all players are on a level playing field, constrained to the same viewing and controls-- see other games that are perhaps awkwardly tiny, like Starcraft 64 multiplayer. It is definitely not as user friendly as the core campaign, but it is a splitscreen RTS for couch co-op! Perhaps the rarity and novelty of it helps tip the balance in its favor.

In regards to Human/CPU options, I will unfortunately not be able to offer a CPU opponent in the 2-player maps when playing alone. The primary reason is that you can create your own 2-player maps in the map editor, and the VI I have made for the CPU is just not flexible enough for the spatial awareness required to make a consistently interesting and resilient opponent across any random combination of terrain. I started the project wanting to have more options in this regard, but at some point I realized the timeline was becoming unsustainable and I had to start cutting features. As a single person developing it in my sparse spare time, especially with it being an RTS, (practically the worst possible type of project to be doing alone if you are trying to compete in the genre in any capacity) I often have to take the lofi route, sadly. In the next strategy project I work on, I will definitely build on this foundation to add these options though (hopefully in the next couple years if all goes well).

This all being said, I plan on partially remedying the lack of 2-player CPU options with a SCENARIO mode that allows you to play against the CPU in interesting levels where you both have all structures/units/spells available. Sort of like a challenge / puzzle mode.

The tech tree is very small in comparison to those of modern RTSs, but it also has some weird unclassifiable elements that no other RTS does that I know of. I will first draw it, then explain what is going on. This will be the first post detailing how the dreamworld works!

The Starmush tech tree. It encompasses structures, units, upgrade research, dream research, and dream world inhabitants

The NODE is the base structure, which allows the building of the DOME and ASSEMBLY structures.

Building the ASSEMBLY allows you to build a BATH, which in turn allows you to build WHIPS and DENS.

The NODE produces TECH units, and if you have a DEN, it can also produce DREAMERS, whose base spell can summon forth WORMS.

The ASSEMBLY produces PROTS and GUNNERS, and if you have a BATH, it can also produce FARCASTERS.

The BATH can research 4 different types of upgrades that boost the following unit stats in 3 levels: prot attack, prot armor, gunner attack, and farcaster attack.

The DEN can research 3 different spells: The Lanterns (painting with fire), The Eater (primordial infection), and the Sleeper (time travel). The Eater may be cast on either a NODE structure, or on a DREAMER who is part of the Sleeper ritual (i.e. when they are sleeping or casting it). When this is done, psychoactives infiltrate your biological components, and you transition to the dreamworld.

When in the dream world, several things happen: The interface changes in color and movement, ancient carcasses come to life, ghosts appear across the map, and some units turn into ghosts. I will detail the new units/mechanics below.

Ancient Carcasses: Obeying whomever harvested remnants from them last, these titanic creatures each have their own spell / attack, and are extremely dangerous and difficult to destroy.

     SCRABBLER- a hulking aquatic insect that breathes forth acidic bubbles.

     DRAGON- a large amorphous wyrm that burns everything around it.

     BURROWER- a stationary shelled creature that can discharge immense electical arcs in defense.

Ghosts: whether crawling forth from the darkness, or emerging from your own units, these apparitions offer different abilities than normal units.

     FLITS- fast-moving gaseous eyes that explode on contact when directed to any unit or structure.

     SPARS- a bio-mechanical tangle of limbs that moves beneath the surface of the ground, and emerges in close combat with spinning implements that can strike more than one unit at a time. While underground they have a strong defense boost.

     WALKERS- crystalline capsules with modified appendages that can direct burning beams of energy outward as a ranged attack. If they are hit several times in a row by other ranged attacks, they compulsively deploy an energy shield that boosts the stats of surrounding friendly units.

All ghosts and carcasses can move freely over most terrain that is impassable to other units, like acid and mush. The alignment of ghosts, unlike carcasses, is determined somewhat randomly.

And that's it for now! It is certainly a limited pool to choose from, but it is, as you suggested, by design. I tried to pack in as much combat variety as I could in as little units as possible to prevent any watering down or redundancy. Combining this with the dream world mechanical shift, units can have fairly dynamic roles. I feel like many modern RTSs focus on unit quantity and combinations for combat variety-- unit numbers are often touted as a selling point. Especially as a solo developer, it just doesn't make sense to try to stretch myself in that way (though it would be super fun, given time/funding). Better to focus on things that bring multiple mechanical differences and different types of combat situations to the best of my abilities, even if it is on a smaller and perhaps more lofi scale than other RTSs.

I will make sure to keep you up to date!
« Last Edit: July 15, 2019, 06:20:03 AM by GoatSkulls » Logged
Level 0

View Profile
« Reply #41 on: June 19, 2019, 11:21:05 PM »

Long time no see! Apologies for the absence. Got a much more stable/sustainable job, but the commute is long, so my evening time has been crunched in an interesting manner and I am still getting used to it. This being said, it is certainly fun figuring out how to work on games with such limitations! In a way, time constraints can help focus you-- especially when there are only a couple of precious hours to spare sometimes. Onward!

Most of the sporadic work for the past couple months has been devoted to menus and level navigation, most notably in multiplayer.

Previously, when you chose the Multiplayer game mode from the main menu, it simply took you to a random level, and when someone won, it took you to another random level, etc. Functional, but not very flexible.

I had to figure out a way of both listing the maps for play, and visualizing them so you could at least vaguely see their features. This is especially important, as map names are limited to 10 characters, and half of them are editor maps!

This really stumped me at first, because I had to find a commonality between in-engine maps and in-game-editor maps that could be used at a moments notice to display the map's content in a way that fits in a small menu at the resolution I have chosen. Not an easy task considering how little pixels I have to work with here.

Through a bit of experimentation though, I came to a solution (clunky and brutish though it may be) that benefits both the display of the map data and the editor save/load system in one fell swoop:


Mush, acid, rocks, thorns, and even carcasses all exist at a tile/collision resolution of 14x14 px. A map may be made up of dirt tiles, units, buildings, and other things at varying resolutions, but the basic geography of the map is displayed well enough without them. If we just think of the 14x14 px tiles, and imagine having each one represented by a single pixel, it becomes a much more manageable size while still being descriptive enough visually.

Whether for readability or just a silly desire to see it work from an aesthetic perspective, I figured: why not just take the most direct route and make each pixel a letter, and store the strings in a text file to read back?

The multiplayer map 'PoisonWell' as it is written to a text file.

With some fiddling (i.e. figuring out how to loop through it efficiently while drawing pixels in the right spot), I got it reading back basic data in this form and making tiny pictures based upon the arrangements of the letters. After dressing it with a border, and getting the actual menu tossed together (and after much finangling of the data structures involved such that it reads the right file based upon the corresponding spot in the list it is reading from etc.), it began to function as intended.

The multiplayer map selection interface! Still lacking many maps, but its getting there. There may or may not be an obvious homage / adaption of a certain map from a certain game with a similar title in here...

I plan to add a couple of additional options beyond what is shown here (one-worker only or Node start, for instance), but what I have so far is a couple of map selection options apart from the basic choose-map-press-enter stuff:

selects a random map from the chosen pool

selects the pool you want to randomize from, Local maps, Editor maps, or All maps

determines what happens upon victory/map change. Off returns to the map selection interface, Random chooses another map at random from the selected map pool, and Sequence plays the maps in order based upon the selected map pool.

This is all super standard stuff, and is not necessarily exciting or notable, but I think the Sequence AUTONEXT option has some potential: given that you will be able to edit the .INI files that store editor map level start dialogue, coupled with the fact that you can play editor maps in order from any given point you want to start at, you could make 2-player vs. campaigns! This will be a bit limited by how the maps are stored (i.e. 10 Smalls, 10 Mediums, 10 Larges in order), but I find it tantalizing nonetheless.

I will go into greater detail soon about how this map display system has led to the creation of the editor save/load function, as well as other things I have been working on that are not multiplayer/editor related (dreamworld shenanigans and optimization of various things).

In other news, MOMOC won an award in the NES dev competition, which is super neat, but perhaps even cooler, back in April, Steve Clark, the legendary programmer of Warlocked himself, mentioned Starmush on Twitter:


High praise indeed, and surely one of the most amazing things I have experienced in the field of development since first picking up that marvelous game on the GBC and wondering at its technical workings.

He is an amazing fellow, and any goblins or hackers out there keen on the ZX should check out his stuff. Suffice to say, he is an actual wizard.

« Last Edit: June 23, 2019, 08:12:34 AM by GoatSkulls » Logged
Kris with a K
Level 1

It's a good day to die.

View Profile
« Reply #42 on: July 14, 2019, 02:42:01 PM »

Congrats on the prize and mentions! Thanks for sharing the tech tree, it looks cool.

If one player enters the dreamworld, is the other pulled into it as well? Or do they continue fighting in the real world while the dream attacks are happening?

For Spars, seems redundant to have them move underground when ghosts bypass all terrain? Maybe they could have a twist on that convention somehow -- they bypass terrain by burrowing, but there is some terrain other ghosts can cross that they can't burrow through?

Level 0

View Profile
« Reply #43 on: July 15, 2019, 06:16:01 AM »

Congrats on the prize and mentions! Thanks for sharing the tech tree, it looks cool.

If one player enters the dreamworld, is the other pulled into it as well? Or do they continue fighting in the real world while the dream attacks are happening?

For Spars, seems redundant to have them move underground when ghosts bypass all terrain? Maybe they could have a twist on that convention somehow -- they bypass terrain by burrowing, but there is some terrain other ghosts can cross that they can't burrow through?

Thanks Kris with a K!

Yes, when one enters the dreamworld, both are pulled into it for a period of time.

In regards to Spars, I should have been a bit more clear: The underground movement of Spars is more of a hard combat counter to Farcasters / heavy ranged attacks, not a movement feature. When underground, they may be targeted and attacked like a normal unit, but like Worms in the non-dream world, they have a massive defense boost (and practically an immunity to electrical-based Whips / base defenses) until they emerge and are attacking.

I went back and edited in a snippet to the end of their description on the tech tree post.
« Last Edit: July 15, 2019, 06:22:24 AM by GoatSkulls » Logged
Pages: 1 2 [3]
Jump to:  

Theme orange-lt created by panic