Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411283 Posts in 69325 Topics- by 58380 Members - Latest Member: bob1029

March 29, 2024, 05:20:19 AM

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 10722 times)
piipu
Level 0
**


View Profile
« on: February 13, 2014, 01:39:25 PM »

The basic idea
In this game you get to build your ships out of construction blocks Lego style. Your goal is to destroy the enemy AI while collecting resources from asteroids and destroyed ships and protecting your mining ships and mother ship from enemy attacks. Story wise, the game takes place after an apocalyptic AI rebellion that destroyed most of humanity. The player's role is that of a human-sympathetic AI trying to save as many people as possible. Therefore, all ships in the game are robotic, controlled by either you or the enemy AI.


Gif showing the new dynamic particles. The gif has pretty bad quality, see here for a webm version.

Latest game footage:




Gameplay
You construct ships block by block by first collecting resources from asteroid fields floating around in space, or by harvesting the destroyed ships of your enemies. Once you have enough resources in your mother ship, you can order a ship you have previously designed using the ship editor to be constructed at one of the mother ships' construction bays. You can either control your ships directly with your keyboard, or you can give them orders to carry out using standard RTS controls.

The goal is to keep your mother ship safe from enemy attack, as that is where your central computer brain resides. If it is destroyed, you lose the game. In addition, you use it as your sole ship factory, so protecting it from even getting damaged is important.

Game mechanics
The game simulation is entirely physics based, with each block being simulated separately. Blocks can get knocked off ships, and each block has their own hit points and impact resistance values. Each block has a different function, be it a gauss gun barrel, a magazine for a machine gun or a generator. A ship has a central computer that controls the whole ship, and once that is destroyed, the ship is useless. Other than that, losing parts will only hurt the maneuverability or other functions of the ship. They'll still try to kill you as long as they have thrusters to aim with and guns to shoot at you.


In addition to standard hit points that blocks lose when they are hit, the game also simulates the bonds holding the blocks together breaking when the impact is sufficiently high. In addition, all generators, weapons and engines generate heat, and if the temperature of a block gets too high, they start taking damage and eventually become disabled if the heat is not radiated to space using heat sinks or conducted to adjacent blocks.

Youtube video demonstrating the heat system:



Developers
Although the workload sharing is a bit fuzzy, here's a rough list of what each of us has done so far.
  • PunCrathod - lead developer, game engine, some AI, eventually multiplayer
  • Piipu - physics, sounds, all of the current placeholder art, fiddling with shaders
  • Powly - OpenGL, graphics framework, shaders, physics, math
We still need to find someone who can make proper textures for all the blocks. The sound effects are also just free samples found on the internet, and we don't have any music so far. Currently all of the art is largely placeholders.

Right now, the game is pretty much just AI vs. AI skirmish we use to find bugs in the physics and test the tactical AI. Things currently on our to-do list:
  • Higher-level AI. We need the AI to be good at strategical thinking for the game to be fun to play against the AI.
  • Ship editor. Designing ships works through .txt editing through notepad currently, and it's not good at all. A graphical editor where you can paint different blocks on a grid and be able to simulate the design in combat will be extremely important.
  • Multiplayer. We are also planning to implement co-op multiplayer, where players will be able to play on the same team against the AI. We'll probably do some sorts of pvp game modes as well.
  • Sensors. We're planning a complicated sensor system with active and passive sensors and sensor data transfer systems. The aim of this is to enable different roles for ship designs and make it harder to design a ship that can do everything by itself. (Although that shouldn't be impossible, just very expensive.)
  • Better sprites. All the sprites have been drawn in Paint spending little or no time thinking about the designs. We'll need better sprites for the blocks as well as particle effects.

Demo download link
Requirements: .net framework version 4, OpenGL 3 capable GPU, visual c++ redist 2012.
You should note that the game is quite GPU and CPU intensive right now. If you have fps problems, you can try reducing the particle and star counts in the GFX.ini. If you don't have a high-end GPU and CPU, you probably won't get very much performance out of the demo. The game isn't too stable either, and still crashes occasionally.

If the game crashes when you try to run it, it would be nice if you could post the crash dump here. It should be located next to the game exe, named errordump201103103.txt or something along those lines. If you can also include what sort of GPU and operating system you're running the game with, it might help us to solve the problem.

GUI Controls:
The remake button resets the scenario, picking random ship designs for all ships in the game. The amount of ships created can be inputted in the text field next to the button. Recommended amounts between 10 and 20 ships.

Reload shaders obviously reloads the shaders in the game. You probably shouldn't touch this unless you really want to modify them yourself.

Query performance measures the time taken by each part of the rendering process and copies it to your clipboard. This probably isn't very useful to you.

The enter editor button only brings up the confusing work-in progress ship editor GUI that doesn't really do anything at this point.
« Last Edit: June 15, 2014, 06:44:41 AM by piipu » Logged

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


View Profile
« Reply #1 on: February 14, 2014, 05:27:00 PM »

Link to gif
Today I wrote some improved shield hit effects. It works by keeping track of larger impacts hitting shields and passing their positions to the shield shader, where I apply a circular sine wave function centered on the hit location to the shield's normal that is used to compute the distortion and reflection effects on the shield. The fade out is achieved by decreasing the frequency of the sine function over time. There's also a generic sine wave distortion on the shield in addition to the hit effect.

 I also improved the turret AI today. Now they no longer try to shoot through rocks and friendly ships indiscriminately. I'm not sure whether or not I should keep the beam reflections. On one hand, they are a cool concept, but they clutter up the screen needlessly and tend to be quite annoying as you just burn up your own ship while trying to kill the enemies. I might also have to decrease the bloom strength of the beams. One beam looks okay but three or more near each other make a big bright area that prevents you from seeing anything else.
« Last Edit: June 15, 2014, 06:38:13 AM by piipu » Logged

Space DM - physics-based space RTS
DarthBenedict
Level 2
**


View Profile
« Reply #2 on: February 14, 2014, 05:29:57 PM »

That shield effect is really nice.
Logged

cragwind
Level 0
***


View Profile WWW
« Reply #3 on: February 14, 2014, 07:20:49 PM »

Nice effects! I like the shield/beam interactions, heating particles, and shields joining like metaballs.

For beams, maybe you could reduce the length of the reflected portion?

As far as gameplay, I like that you're going with friendly fire. One thing that comes to mind is that it's a great way to avoid the problem of determining which beams/projectiles belong to which side, since you'd want to avoid all of it. I can imagine large battles will be pretty chaotic, not to mention ships crashing into each other (possibly as a result of control module lost?).

Do your ships have a 'forward' direction? Is it something players need to care about or can change easily?
Logged

Christian
Level 10
*****



View Profile WWW
« Reply #4 on: February 14, 2014, 07:58:41 PM »

This looks awesome. Love the destruction and the visual effects
Logged

Visit Indie Game Enthusiast or follow me @IG_Enthusiast to learn about the best new and upcoming indie games!
Uykered
Guest
« Reply #5 on: February 14, 2014, 10:47:07 PM »

Looking cool
Logged
piipu
Level 0
**


View Profile
« Reply #6 on: February 15, 2014, 03:17:23 AM »

Thanks for all the positive feedback! Luckily we have a good OpenGL guy (nicknamed powly on these forums) working with us who made all these cool effects possible.

For beams, maybe you could reduce the length of the reflected portion?
That's a good idea. I'll try and see how it works, it shouldn't be too hard to code up. Currently I just dim the beam brightness and lower damage and heat done by the reflection multiplier of whatever it hits (currently 0.5 for all things.) Lowering the range might decrease the amount of beam reflections flashing around the screen nicely.

As far as gameplay, I like that you're going with friendly fire. One thing that comes to mind is that it's a great way to avoid the problem of determining which beams/projectiles belong to which side, since you'd want to avoid all of it. I can imagine large battles will be pretty chaotic, not to mention ships crashing into each other (possibly as a result of control module lost?).
We tried to make the game as 'realistic' as possible by doing as little nonphysical things such as friendly fire going through ships or friendly ships not colliding with each other. It does result in the occasional chaotic moment but I think that's part of the fun and not really a bad thing. It just means that you'll have to coordinate your ships better in combat. This means you will have to micromanage the ships a bit more, but since we're planning the game to have only around 30 or 40 ships at maximum, it shouldn't really be a problem.

As for unintentional collisions between ships, the current AI is pretty good at avoiding those as long as the ships have enough thrusters left to avoid the incoming ship. It's of course a different story once there's either not enough power to run the thrusters or they've fallen off, not to mention when the other ship is intentionally trying to ram. This is a rather big gameplay balance consideration too since it wouldn't be very much fun if the best strategy in all cases would be just to build as many ramming ships as possible. Lethal weapons and clever targeting AI will most likely solve this problem though.

Do your ships have a 'forward' direction? Is it something players need to care about or can change easily?
Ships have a forward direction only in the sense that the individual ship controls need to have some direction as forward, so that thrusting left will result in the ship trying to move to the left relative of its nose heading. But you can rotate all blocks in 4 directions, meaning you can make ships that only have backwards-firing weapons and so on. Physics-wise the game doesn't care about such things.

Edit: The beam maximum range is now halved when a beam gets reflected. I also reduced the maximum number of reflections per beam from 10 to 3 and fixed a small error in the shader which allowed beams to occasionally have negative-color bloom when they were very dim. It's now easier to tell which beams are reflections and which are not, as the brightness is a linear scaling from the origin to the maximum range of the beam, meaning reflections are even dimmer now. The result looks quite a bit better in my opinion:
« Last Edit: February 15, 2014, 03:51:05 AM by piipu » Logged

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


View Profile
« Reply #7 on: February 15, 2014, 05:32:37 AM »

I guess I should chip in too since I'm technically the lead dev in this project. Piipu and me do most of the coding and powly mostly just makes the shaders and help us with the math. We should propably find someone to make us better textures and someone to make us soundeffects and music.

So about the project itself.
The projects first iteration was way back in 2004 with another friend that has since found other intrests and that iteration never got anywhere. But this time we are working on this seriously and I intend to commercialise this so wish us luck.

The setting I had tought of was that due to "armageddon" humanity is mostly extinct and the AI humanity built to help them has taken over all known space. With most of humans gone the AI thinks its superior and seeks to make sure that humans never come back. The player(s) are the last human friendly AI with the mission to escort the remaining humans inside the mothership to safety.

In the beginning of the game the players have only the mothership and a few escorts. Players need to mine asteroids and salvage destroyed ships to gain resources and technology to build more badass ships to fend off the ever incresing amount of AI ships.

Now that thats done I wish you guys throw us lots of guestions and opinions about the game and its features so we know what aspects people are intrested in so we can focus on those. We should be able to answer even some technical guestions about the engine too if you are intrested.
Logged
piipu
Level 0
**


View Profile
« Reply #8 on: February 15, 2014, 05:21:08 PM »

Today I managed to do a rather important bit of optimization. I improved the bullet ray cast code so that even larger chain reaction explosions that destroy half a ship don't cause a noticeable slowdown like they used to. To test this, I loaded up some battleship-sized ships that were too large for the game to handle before (for comparison, those ships are 1100 blocks each, when standard ships are between 100 and 400):
link
Although they run a lot better now, they still have such a large amount of blocks that the game slows down quite noticeably. However, it's no longer a choppy slowdown, but a smooth, steady one. Looks like ships this big are still a bit too heavy to simulate. Still, with some further optimizations, those might be possible as well.

Other than that, I added some further fixes to the turret targeting AI. They used to occasionally try to shoot through their own ship, with nasty results. That's now fixed though. Here's a shot of those turrets in action, showing how one ship is shooting at two different ships simultaneously, as each turret selects its own target individually:
link

I also added a particle effect to shields that fail when they are shot. I'm now quite happy with the particle colors yet, but it's pretty good regardless.
link
« Last Edit: June 15, 2014, 06:36:42 AM by piipu » Logged

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


View Profile WWW
« Reply #9 on: February 16, 2014, 09:18:21 AM »

Love these physics type things.
I think it'd be cool if you can model the interior. It'd be really cool if you could punch a hole in the hull of a ship, then see the whole crew get sucked out if you don't have compartments divided by airlocks.
Logged

mrBlack
Level 0
***



View Profile WWW
« Reply #10 on: February 16, 2014, 10:03:13 AM »

Yeah, this looks awesome.

Is this going to be free or will you be selling it?  In either case, it looks great.
Logged

Website: Pirency
Dev Log: Lejendary Dev Log
PunCrathod
Level 0
*


View Profile
« Reply #11 on: February 16, 2014, 10:20:09 AM »

Love these physics type things.

Yeah we love them too.

I think it'd be cool if you can model the interior. It'd be really cool if you could punch a hole in the hull of a ship, then see the whole crew get sucked out if you don't have compartments divided by airlocks.

The plan was that the ships are fully automated and each block is one meter wide so sorry there isn't any plans model the interior.

Yeah, this looks awesome.

Is this going to be free or will you be selling it?  In either case, it looks great.

Thanks for the praise. We do aim to be selling this when its good enough to be sold.The price will be decided when we are close to that but it propably will be less than 20€. You propably will see a few test builds and free demos before that tough.
Logged
piipu
Level 0
**


View Profile
« Reply #12 on: February 17, 2014, 12:04:06 PM »

Link to gif
Powly fixed the curl noise for particles yesterday, so fire is now prettier.
« Last Edit: June 15, 2014, 06:37:16 AM by piipu » Logged

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



View Profile WWW
« Reply #13 on: February 17, 2014, 01:01:14 PM »

Wow love the idea of this and it looks great! Will be following with interest!
Logged

Join Space Farmers Steam Community Group! http://steamcommunity.com/groups/spacefarmers
Follow me on the twitters: https://twitter.com/BumpkinAndy
Simon Barsky
Level 0
*


View Profile WWW
« Reply #14 on: February 17, 2014, 11:40:19 PM »

Looks really nice! The slower movement speed really helps sell the scale. I tried running the demo, but the game never starts. It shows up in the task manager then disappears after a few seconds without ever opening a window.
Logged
piipu
Level 0
**


View Profile
« Reply #15 on: February 18, 2014, 12:55:50 PM »

While trying to solve a weird problem with bullets occasionally passing through armor, I made a system that draws the routes of all bullets inside a collision. All the fancy effects are turned off so that you can actually see what's happening. Since they normally happen too fast to see properly, I slowed the gif down from 30 to 1 fps. All the bullets are identical, color differences only show which bullets have hit something (displayed in yellow.)
link to gif
A gauss slug coming from the left penetrates the armor and then explodes inside the ship. The secondary explosions caused by the ship's ammo bins (those magazine-looking things with yellow bullets on a dark background) getting destroyed increase the damage done and destroy some of the ship's reactors (the blue-grey blocks near the center of the ship.)
« Last Edit: June 15, 2014, 06:48:53 AM by piipu » Logged

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


View Profile
« Reply #16 on: February 22, 2014, 06:30:16 PM »

Looks really nice! The slower movement speed really helps sell the scale. I tried running the demo, but the game never starts. It shows up in the task manager then disappears after a few seconds without ever opening a window.
Sorry for being so late, forgot to reply earlier. The demo needs .net framework 4.0, Visual c++ redist 2012 and OpenGL3 to run. If you have all of those, there might be some other compatibility issue we don't yet know about. We haven't done too large-scaled testing before this. If you get an error dump when you try to run the game, it would be nice if you could post it here. It should be located next to the game exe, named errordump201103103.txt or something along those lines, along with what sort of GPU and operating system you're running.

Anyways, back to the devlog. Today I started work on the resource gathering system. I implemented miniature bots that seek any destroyed ships or asteroids in their close proximity and melt them down to scrap. I still need to create a system that allows them to collect scrap blocks and transfer them to a mother ship, as well as some means of transporting and launching the bots from a ship. So there's still a lot to do on this front. Anyways, gif time again:
link

Also made a new skirmish video showing some of the new features:

« Last Edit: June 15, 2014, 06:49:21 AM by piipu » Logged

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


View Profile
« Reply #17 on: March 26, 2014, 10:43:30 AM »

I've been quite busy with school work lately, but here's an update on what I've done since the last post. I coded up a system that allows a beam to hit multiple surfaces at once when the surfaces are close to each other. This should reduce the weird blinking beam reflections that looked really stupid to me. Here are some gifs to better illustrate the problem:
Before:
link to gif
After:
link to gif

I also made a new type of ballistic weaponry. It's a flak artillery type of gun that shoots exploding shells on a timed fuse. The shooter calculates the time of detonation automatically to explode the shell as close to the target as possible. This should be useful as a point defence type of weapon against small ships and missiles. It's also effective against soft targets, as the shell can penetrate deeper into the enemy ship and explode inside it, rather than against the outer armor of the ship.

There's also all sorts of smaller tweaks to the particle system, I'm experimenting a bit with what sort of effects look good on it. You can see them and the flak cannon in action in this youtube video:


« Last Edit: June 15, 2014, 06:48:22 AM by piipu » Logged

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


View Profile
« Reply #18 on: March 27, 2014, 06:59:48 PM »

Today I further improved the looks of the particle system. Shrapnel smoke trails now spawn some red sparks, making it look a bit more varied. I also added some randomization to explosions, they look better too now.
link

The flak cannon point defence mode works now. When placed in a turret mount, it will automatically seek enemy missiles and destroy them. The prediction function still sucks a bit, making it miss quite a lot of the time but it's close enough for now.
link

Here's also a youtube video demonstrating the new flak cannon as well as the particle visuals:


« Last Edit: June 15, 2014, 06:47:43 AM by piipu » Logged

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


View Profile
« Reply #19 on: April 11, 2014, 01:16:17 PM »

It's been a while since by last update but we've been doing quite a bit of progress. The most important new feature is a barebones implementation of the ship control system. You can now give move and attack orders to your ships and select your ships by dragging a box over them with your mouse. It's still a bit clunky and those are the only two orders you can give currently. We still need to implement patrol, guards, chained move and attack orders at least, as well as toggles for shields and a button for releasing minidrones. Here's a webm demonstrating the ordering system.

I also implemented a beam cone weapon type. It works by simply creating 40 or so beams with slightly different outgoing directions, giving the appearance of a continuous cone. There's another webm showing them off Here. They're quite performance-heavy and take up quite a lot of space on the screen though, so they will probably be quite rare in the finished game.

We've also done a bit more optimization. Unnecessary debug error tests are now disabled in release mode, text rendering looks a lot better while also being faster, and the ray casts for bullets and beams are unified into one class, making further maintenance easier.

I improved the particle system slightly as well, allowing for particles with curl noise to also move, before their movement was defined entirely by the curl noise. See here for a webm showing the new feature.

There's also a new demo version out, the link in the OP points to the new version now.
Logged

Space DM - physics-based space RTS
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic