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

Login with username, password and session length

 
Advanced search

1397165 Posts in 67441 Topics- by 60650 Members - Latest Member: MacX

December 01, 2021, 12:47:37 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSpace DM - Tactical space combat RTS - Demo now available
Pages: 1 [2]
Print
Author Topic: Space DM - Tactical space combat RTS - Demo now available  (Read 10056 times)
tuglaw
Level 0
***



View Profile WWW
« Reply #20 on: April 11, 2014, 01:32:00 PM »

Cool! Really wanted to try it out now, but I'll have to wait for tomorrow.
Logged

piipu
Level 0
**


View Profile
« Reply #21 on: May 23, 2014, 01:12:15 PM »

It's been quite a bit since my last post here but we've worked on the game regardless. We've made big advancements both on the graphics as well as on the gameplay front.

First and biggest change is the addition of the sensor system. Enemy ships now have to be detected by sensors before they can be fired upon. Currently the detection range depends on just the size of the enemy ship, but we will add more variables and different types of sensors later.

There are three stages of detection. The first only reveals the ship's position and size, but reaches out the furthest. The second stage that is slightly closer also reveals the team of the spotted ship, otherwise you can't tell asteroids and dead ships from enemies. The third stage reveals all targeting information of the ship: the ship's health, the number, type and firing arcs of all the weapons, the ship's facing and anything else on the ship. Only these ships are rendered as something more than square blips on your screen, letting you see the enemy ship's design and any damage done to it when you zoom close. The AI is restricted to the same exact information you have, it can't cheat and know where your ships are instatly without scouting.

All sensor information is shared among a team, so sending out scouts is very effective and an important part of the game. Not only enemies, this also lets you discover asteroid fields that you can mine for building more ships. I thought about having sensor information be relayed only by communications equipement, but that would most likely be too confusing, as there is no easy way to show the player which spotted ships get relayed to your ships, and it would be hard to prevent exploitation of visibility by ordering your ships to attack where you know the enemy is even though the ships don't have sensor information on the enemy.

Here's a youtube video displaying the sensor system:



We also have a rough first implementation of the mining system. Mining drones can now be launched from a ship with the mining system block. The drones will seek out the closest dead mass (asteroids or dead ships) and melt them with their laser beams. Then they will collect construction materials from them and deliver them back to the ship. They can't yet return to the ship they came from, and they mine regardless of nearby enemy activity. They're supposed to work only when there are no threatening enemy ships nearby, but that's still under work. Here's a .webm demonstrating them: Link

On the graphics front, we now have a system of dynamic lighting that uses deferred rendering to allow for efficient lighting of everything in the world, including particles. We also implemented motion blur for ships as well, making close-ups quite a bit prettier. Here's a .webm showing both of these: Link

We've also made some less impressive-looking changes to the rendering. All the dead mass floating around is now unified into a single draw call, increasing performance significantly. Before all of them had their own draw call, which was both stupid and slow.

PunCrathod also started work on the loading/saving of the game. It currently uses a LZMA (or 7zip) compression algorithm to save time when having to transfer saves over the internet when people are joining the game or if the game possibly needs to be resynced. The compression shrinks a 20 MB save file of 40 ships down to around 400 kB, which should save quite a bit of time when transferring saves to people with a slower connection. There's also lots of smaller fixes and changes that I can't remember right now but these weer the most important ones.
Logged

Space DM - physics-based space RTS
piipu
Level 0
**


View Profile
« Reply #22 on: May 29, 2014, 08:04:42 AM »

Time for more progress posting. Firstly, we redid the bloom formulas to get rid of blockyness that was sometimes visible around bright spots. I also tweaked the engine exhaust visuals and the way the engine emitters react to thrust levels. Here's a picture of how the game looks now:


The sensor system is also getting along quite well. Some details are still unpolished, but the basics are all there. There are four types of sensors currently:
Optical, that has a medium detection range that scales with the size of the target ships, so bigger ships will be visible further out. These are not so good, but they're hard to fool.
Radar that in active mode works like an optical sensor except the detection ranges are a lot bigger. Active radar will also be easily visible to all other radars. Radars can be also used in passive mode, where it will use less power but it can only detect other active radars. It has the advantage of being more stealthy, since the enemy will not see you, but you can still detect their radars from a long way away.
IR sensors are medium-ranged sensors, but their detection range scales based on the temperature of the target ship, so that ships that are running cold will be almost impossible to detect, while really hot ships can be seen from a long way away.
And finally, electromagnetic sensors work by detecting the flow of electricity on target ships. These are still unfinished, but I was thinking that it should only detect enemy ships that have shields, but those should be visible from quite far away. Detection could then be avoided by simply turning off the shields on your ship until you were ready to attack the enemy.

Any type of sensor can also be mounted on a guided missile. Missiles only home on targets that they can detect with their sensor. If it can't see the target, it will calculate a guess of the target's current position based on the last known position and velocity, and head there. This means that you can have missiles without any sensors too, but then they will be quite inaccurate as they will only use this basic approximation of the target's current location.

This sensor system also allows to simulate semi-realistic countermeasures for heat-seeking missiles. If a ship launches hot flares away from itself, the missile can mistake the flare for the ship, since the missile tries to home in on the strongest sensor reading close to the target's position. This also means that the counter-measures will be more effective on ships that run cooler, since the flare will read as a stronger blip than the ship more easily. The reverse also applies, if the ship is about to melt down from plasma cannon or beam hits, the countermeasures won't really help at all. Here's a gif of the countermeasure system in action:
link
You can see that after the ship gets hit by the plasma torpedo, all the missiles quickly home in on the ship instead of the countermeasure flares, since the ship is now hotter than the countermeasures. The green lines are a visualization of the missile's current target, and are there only for debugging reasons.
« Last Edit: June 15, 2014, 06:46:31 AM by piipu » Logged

Space DM - physics-based space RTS
piipu
Level 0
**


View Profile
« Reply #23 on: May 29, 2014, 04:30:33 PM »

Today me and powly improved the motion blur effects quite a bit. Also we finally made use of the HDR rendering and tone mapping we implemented ages ago by adding a lot higher multiplier to bloomed parts of ships and particles. I found some bugs in the lighting shader as well, and managed to get rid of ugly aliasing at the edges of ships and particles. Here's a gif demonstrating it:
link
« Last Edit: June 15, 2014, 06:45:47 AM by piipu » Logged

Space DM - physics-based space RTS
piipu
Level 0
**


View Profile
« Reply #24 on: June 02, 2014, 04:10:16 PM »

Another progress update:

Improved the motion blur system quite a bit, it supports dilating properly now, and does not cause too noticeable distortions, although some are still visible next to objects moving very fast. Also made camera movement and zoom be taken into account when calculating motion blur.

Polished the HDR side of rendering too, beams are now more sharp and solid lines instead of the bloomy haze they were before. Fixed the rendering of bullet heat blooms, and tweaked some particle effects too again.

The mining system is now mostly done, the mining drones can now land back at the carriers, and if enemies are detected nearby, they will automatically head back to the carrier. They can also be ordered back to the ship manually.

Fixed point-defence beams, they never got tagged as being point defence, so they acted just like ordinary beams. Now they can shoot missiles down again. Also made some balancing changes to point defence weapons, now missiles have a chance of getting through even if there are more than one point defence weapons shooting at them.

I recorded a new gameplay video too, it can be found here:

Logged

Space DM - physics-based space RTS
piipu
Level 0
**


View Profile
« Reply #25 on: June 15, 2014, 07:00:59 AM »

Wrote a system that lets the particles collide with other particles and ships, and also allows to simulate shock waves from explosions. It's a slight fake since it reads the velocity buffer instead of doing actual collision detection. Once it detects a velocity under itself that's different from the particle's own velocity, a force is applied to the particle, giving it a jolt in the direction the other particle was moving. This gives a decent impression of an inelastic collision happening, although it's not perfectly precise. It also means that it's rather lightweight, requiring just one texture lookup per particle, plus some simple calculations to determine the new velocity if there was a collision.

I also wrote a shader that draws discs of velocity around explosions that when combined with the new collision system has a shockwave-like effect on surrounding particles. This and particles colliding with each other and ships makes for a decent dynamic particle system.

Here's a webm showing the new system: link
Logged

Space DM - physics-based space RTS
piipu
Level 0
**


View Profile
« Reply #26 on: July 05, 2014, 02:36:25 AM »

We've been able to make a lot more progress now that summer is here and school doesn't take up all our time anymore. Most importantly we finished the ship construction mechanic. A ship with a factory block can now be ordered to build another ship, either repairing it by adding back any blocks that have been destroyed, or it can build a whole new ship. You can also order a ship to be retrofitted to a new blueprint, at which point it ejects any incompatible blocks and then they are replaced by ones from a ship constructor. New blocks can only be added adjacent to an already existing block, so ships are 'grown' starting from the core block that is created separately. When the constructor detects a missing block on the ship, it sends a minibot that flies over to the spot of the missing block and welds itself into the ship.

We also tweaked the mining system a bit. The melter minibots equipped with mining beams and collector blocks that collect molten free-floating mass are now separated into two classes. This makes mining a bit faster, since the mining bots can keep flying and melting things down while the collectors run back and forth between the asteroid field and mining ship. We also optimized the way minibots work, now they cause a lot less load on the CPU side of the game, meaning we can have a lot more of them without slowing the game down. You can see both the mining bots and the construction system in action in this here webm: Link

The collision system is also improved quite a bit. Before collisions were checked only once per frame, now it's checked every .5 block widths moved by the ship. As a result, collisions with faster relative velocities are no longer a problem. Before the ships would mostly just warp through each other instead of collidiong properly. Here's a webm showing what the collision system can do now: Link

We also started working on numerous UI improvements. The UI system now supports window background objects that block any clicks to buttons and other things under them, but don't do anything themselves. All UI elements can also be set to be in either relative screen coordinates or absolute pixel coordinates, depending on what we want. Also we added a text lable that gets added to ships that are detected by your sensors. If the ship is close enough for details to be detected, the ship design name and ID are displayed, otherwise it's labeled as an unknown contact. The label also shows the ship's IFF with a color, if it's known. We also improved the camera movement a bit so that zoom is now centered on the cursor instead of the screen center, allowing you to better navigate without having to scroll your screen manually all the time. These improvements can be seen here: Link
(the webm doesn't yet have the unknown contact indicator, but here's a picture with it implemented too)
Logged

Space DM - physics-based space RTS
tuglaw
Level 0
***



View Profile WWW
« Reply #27 on: July 06, 2014, 02:30:25 AM »

Amazing progress. Beer!

So when the players are building their ships, they have to take to account the exhaust blocks placements correct?

I'd imagine if you'd surround your exhaust blocks with other blocks (energy, weapon systems) the heat released would bring down their performance, while having the exhaust blocks exposed would result in a gigantic weak point on your build.
Logged

piipu
Level 0
**


View Profile
« Reply #28 on: July 06, 2014, 05:00:55 AM »

That's correct, although heat only causes damage to blocks that go over their heat limit, which varies from block to block. It might be interesting to have heat affect the performance of all blocks too. It would be pretty simple to implement, we might try that and see how it plays. It'd also help limit explosions caused by overheating, since heat generation is dependent on how high the power level of a block is.
Logged

Space DM - physics-based space RTS
icompose
Level 0
**


View Profile
« Reply #29 on: July 07, 2014, 08:40:50 AM »

Following this, also sent you a pm about music.
Logged
Pages: 1 [2]
Print
Jump to:  

Theme orange-lt created by panic