Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411485 Posts in 69371 Topics- by 58427 Members - Latest Member: shelton786

April 24, 2024, 04:37:26 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsSpace Game Testing Grounds (working title)
Pages: [1] 2 3 ... 6
Print
Author Topic: Space Game Testing Grounds (working title)  (Read 11334 times)
Kornel
Level 1
*



View Profile WWW
« on: February 18, 2018, 02:07:41 AM »

Space Game Testing Grounds is a space game prototype / exploration project. It's inspired by games like Star Trek Online, Battlestar Galactica Online, Homeworld and a few other.





The current vision for the game is this:

You have a direct control over a Mothership (very much like you have now). You can build and re-build how your ship looks and what statistics it has, you can add modules and do some simple RPG leveling.

But your main force is your fleet - a combination of different classes of ships / drones. You build the ships/drones from blueprints you create or find - you use parts (for the hull and basic statistics) and then add active & passive modules.

But you also can (and should) give them their brains - build their AI (like: always attack the biggest ship first, if you are below 20% HP retreat and repair, and so on). Once a ship/drone is build you have no direct control over it, but it will remain close to you and follow it's AI you've put in to it.



To put it in other words:
Think Homeworld meets Diablo 2's Necromancer meets Gratuitous Space Battles meets Kerbal Space Program ship building (but no physics! so more like ship builder from Galactic Civilization).



The top 10 things to know about this project:

   1. Focused on space
   2. And on all the space things we love: space laser, space combat, space flying, space travel - I think you get the idea Smiley
   3. Single player for now, but who knows what the future will bring
   4. Also for now, models restricted to Unity cubes and some other build-in Unity primitives
   5. Since this is a prototype / exploration project: there is no (concrete) plan Wink
   6. There are things I'd like to add or at least try and see how they could work, but no time-table, no GDD, no milestones - this is intentional
   7. This also means lots of experimentation, lots of changes and lots of things being made and then thrown away - it can get ugly! Wink
   8. I intend to work on this at least a few minutes every day (Monday - Saturday), preferably at least 20-30 min. a day or as much as time allows - so that a daily progress is made. But it also meant this is a side project, worked on after hours
   9. There is a WebGL build and it will be updated every time there are new things to see, hear or play with, even if they are small
   10. And last but not least - I will share all my progress (and things that are blocking me) here - even if it's just small stuff


Current Work In Progress


How the game changed in 21 updates (21 days of work).

From this:

First day of development.

Second day of development.


To this:

Today.

Another angle.


I invite everyone to take this gamedev journey with me!



(Outdated, saved for historical reasons) The long, version and a bit of a backstory behind the project - for those who are interested:

Few days ago while playing Star Trek Online and listening to some Game Developer Conference talk in the background I felt a strong urge to make a space combat thingy of sorts. But the funny thing is: a similar idea was my original impulse to learn Unity and it was my very first project I tried to make in Unity. It happen many years ago and ended up in a failure. That discouraged me quite a bit and I would use Unity only sparingly, focusing more on pure C# programming. I would seriously pick up Unity and game design only about a year ago.

Going back to the present day - while playing Star Trek Online I noticed, with a surprise - "Hey, I actually NOW know how do this!" (or at least a single player version) - the whole last year of learning and creating seem to start paying off. A wonderful moment for me, to say the least.

So I decided to start this project. I'd also like to take a very different approach from my usual projects (or projects that I helped on) - gamedev or otherwise:
  • For starters, I don't have an end goal in mind - sure, I know what I would like to try and add to it - but I don't know what sort of game it will end up as, even if it will be a game. It can very well end up as single player space playground of sorts, as well as some multiplayer thing!
  • I've also decided to stop hiding away my projects and share all the progress, even the smallest one, as I go along. Starting with day 1.
  • I think this is also a great opportunity to try and find people interested it this sort of thing - a community - if I may be so bold. To test it with me, see what's missing and what can be build upon, and to discus all the space things.



That's about it for my motivation behind it. Now it's time for some facts about the game:
  • Combat and ship movement inspired by Star Trek Online and Battlestar Galactica Online and a few other games, including... Homeworld
  • As mentioned before, I have absolutely no idea where I'm going with it, sure I know what I would like to include, but I have no end goal in mind - not yet anyway, and don't intend to force one
  • Neither do I know how much will be added / how long will it be developed
  • Which means a looooot of experimentation and a lot of pivoting during development
  • I will work on it as time allows and consider it I-will-add-a-line-of-code-when-I-have-5-minutes type of project - in other word I would like to have a steady pace of development, but with small steps
  • I will share a link to a new build every time there is something new to play with (gameplay or audiovisual-wise)
  • As for the graphics (models), for now, I will exclusively stick to default Unity cubes (and perhaps spheres or other Unity primitives) and see how much can I do with them

Having, for a change, no goal to be reached and no time-table to stick to is surprisingly relaxing! Smiley
« Last Edit: April 25, 2018, 06:52:46 AM by Kornel » Logged

Kornel
Level 1
*



View Profile WWW
« Reply #1 on: February 18, 2018, 02:11:11 AM »

Game updates so far:

Game Update 001 - First version




Update 002 - "Huston, we've got a ship!"
* [added] A new cube-ship model.
* [added] New material for engines.
* [changed] Updated lighting in the scene and cube material.




Update 003 - Cube Asteroids
* [added] Asteroid field generator with randomly distributed asteroids (using normal distribution).
* [added] Each time the game is started a different asteroid field is generated for the player.




Update 004 - Orbit Cam
* [added] Orbit camera (no zoom yet).
* [added] You can press a button on the screen to generate a new cube-asteroid field.




Update 005 - Build script
* [added] [internal] Created a build script to allow me to spend more time on creating and less time on repetitive tasks.
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #2 on: February 18, 2018, 11:26:11 PM »

How are everyone this week?

No new progress yet, but I wanted to share the script I wrote about yesterday. I used this Gamasutra article as a basis for it, but cleaned it up a bit and added creating a zip archive.

What it basically does is:
  • adds scenes
  • builds your project to a folder of your choosing
  • if successful, zips the build of the game in to an archive
  • prints out all the messages (from 7zip and errors from the building process - if there are any)

Code:
using System.Diagnostics;
using System.Text;
using UnityEditor;
using UnityEngine;

public class BuildWebGL : MonoBehaviour
{
static private string zipExe = @"C:\Program Files\7-Zip\7z.exe";
static private string destinationFolder = @"C:\Projects\Space Game Testing Grounds";
static private string destinationFile = @"C:\Projects\Archives\Space Game Testing Grounds.zip";
static private string[] levels = new string[]
{
"Assets/Scenes/Main.unity",
};

[MenuItem( "Builds/Build WebGL and zip it" )]
public static void MakeBuild( )
{
bool buildSuccessful = Build( );

if ( buildSuccessful)
Zip( );
}

private static bool Build( )
{
string returnMsg = BuildPipeline.BuildPlayer
(
levels,
destinationFolder,
BuildTarget.WebGL,
BuildOptions.ShowBuiltPlayer
);

if ( string.IsNullOrEmpty( returnMsg ) )
{
UnityEngine.Debug.Log( "WebGL build complete..." );
return true;
}
else
{
UnityEngine.Debug.LogError( "Error building WebGL:\n" + returnMsg );
return false;
}
}

private static void Zip( )
{
StringBuilder outputBuilder = new StringBuilder( );
Process process = new Process( );
process.StartInfo.FileName = zipExe;
process.StartInfo.Arguments = " a \"" + destinationFile + "\" \"" + destinationFolder + @"\" + "\"*";

// Used to capture 7zip output
process.StartInfo.UseShellExecute = false;
process.StartInfo.RedirectStandardOutput = true;
process.OutputDataReceived += new DataReceivedEventHandler
(
delegate ( object sender, DataReceivedEventArgs e )
{
outputBuilder.AppendLine( e.Data );
}
);

process.Start( );
process.BeginOutputReadLine( );
process.WaitForExit( );
process.CancelOutputRead( );

UnityEngine.Debug.Log( outputBuilder.ToString( ) );
}
}

Please remember to put it in a folder called Editor in your Unity project. Also you might need to change the paths (destinationFolder and destinationFile). It also assumes you have 7zip installed.

This one script makes my life sooo much easier. I can spent more time on the project and less time doing repetitive tasks. Go automation! Grin

Hope it helps you, too. See you next time Smiley
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #3 on: February 19, 2018, 01:26:49 PM »

Update 006 - Zoom
* [added]  You can now use mouse wheel to zoom in and out.

Current WebGL Build


Logged

Kornel
Level 1
*



View Profile WWW
« Reply #4 on: February 20, 2018, 06:20:09 AM »

Update 007 - More generation options
* [added] Generator option panel in place of the button with ease-in and out effect.
* [added] Controls for asteroid field size.
* [added] Slider for asteroid count.
* [changed] Zoom in now way faster.
* [changed] Camera clipping plane is larger to show more asteroids.

Current WebGL Build
(requires a browser with WebGL 2.0 support
all major up-to-date browsers should work)




Logged

Kornel
Level 1
*



View Profile WWW
« Reply #5 on: February 21, 2018, 02:37:56 PM »

Hello Dear Reader!

Here are today's updates:

Update 008 - Camera angle
* [added] Camera angle are now restricted when looking up and down.
* [changed] Game starts with camera being farther away.

It might seem small but it makes it less likely to get lost while orbiting the camera (where is up and where is down). Now it works very similarly to how the camera works in Homeworld. In a way it promotes a feeling of having a "ground plane" despite there being none.

Current WebGL Build
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #6 on: February 22, 2018, 01:20:44 PM »

Hello everyone!

Today I have for you the biggest update yet - flying!

Update 009 - ...and we are underway
* [added] The ship can fly now!
* [changed] The default asteroid field is much larder and there are more asteroids to accommodate the movement.
* [changed] Asteroids are also bigger now.



It took few days to get to this point, but we can finally move the dame ship!

It's still a bit wonky and there is no UI but we will get there, eventually.

Controls:
  • Q/E - to speed up / down
  • A/D - to turn left / right
  • W/S - to tilt up / down

Current WebGL Build

Logged

Kornel
Level 1
*



View Profile WWW
« Reply #7 on: February 23, 2018, 02:13:07 PM »

Hi!

Some people had problems with ship movement so for today I decided to add some UI elements for the ship control.

Update 010 - Throttle and speed control
* [added] Now you can change engine power with a slider!
* [added] And there is a rudimentary speed display.






Logged

Kornel
Level 1
*



View Profile WWW
« Reply #8 on: February 24, 2018, 12:56:51 PM »

Hello!

The first version of a tutorial / help is up.

Update 011 - Help window
* [added] A help window with the controls shows up when you start the game. Press any key to close it.
* [added] Pressing F1 opens it up again.

Any and all constructive feedback is always welcomed Smiley



Logged

indominator
Level 1
*


?????


View Profile
« Reply #9 on: February 24, 2018, 01:18:29 PM »

loved it very much, is the world gonna be continuously generated according to movement or is it gonna be made in a initial process of world generation? also are the asteroids also gonna be procedurally generated or pre generated? i tried doing some basic mesh generation on unity and had some pains on properly setting up the triangles :/ thx god for mesh.recalculatenormals()
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #10 on: February 24, 2018, 02:07:17 PM »

Thanks Smiley

I was thinking about a layered approach:
  • generate a star cluster
  • generate a star system (once player enters)
  • put points of interest (their types on the system map)
  • generate content of the POI using sets (like important structures, important NPCs or pre-make asteroid configurations) + some procgen filler stuff (like asteroids, NPCs or debris)

As for geometry I currently lean more towards pre-made module and assembling them at run-time.

That's the plan at least. Implementation always have a tendency to correct ones thinking Wink

Do you have your project posted some here? I would love to see it!
Logged

Kevycat
Level 0
***

I'm just a cat.


View Profile
« Reply #11 on: February 24, 2018, 06:20:04 PM »

I tried this out and it was pretty fun, but here's some constructive critiscism. First, I was playing this on a computer without an f1 key so I couldn't acces the help screen. Second, maybe make the rotation more momentum based, ecause with the current system it feels kind-of jankey. And last, I would suggest replacing the speed slider in the bottom with something else, ecause it really just makes the q and e keys useless ecause they speed up and slow down slowly while the slider is instant. I hope this feedback can help you in your game design!

Extra note: I'm using a chromebook right now which is asically a laptop that only runs google chrome and is missing the f keys. Also, I didn't really notice the slider doing any kind of gradual acceleration so I would suggest looking at that more.

Final note: why do I never type my 'b's at all?

Another note: I suggest using quaternions they would be good for rotation systems like the one in place. Wizard Tiger
« Last Edit: February 25, 2018, 11:27:27 AM by Kevycat » Logged

Kornel
Level 1
*



View Profile WWW
« Reply #12 on: February 25, 2018, 12:03:08 AM »

Thanks for the feedback, Kevycat! Smiley

That's very interesting with the F-key - I think I will add a button, so you can click on it also.

I agree, the rotation needs a lot more work.

Do you think making the q/e keys change the throttle faster would help? I was going for a feeling - you set the desired throttle/power/speed level and the ship starts to accelerate to that.

You feedback helps me a lot, please keep it coming! Beer!
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #13 on: February 26, 2018, 06:45:56 AM »

Hi!

Some changes based on first player feedback!

Update 012 - First player feedback changes
* [added] Zoom in / out now works with +/- buttons.
* [added] You can also bring back the help screen with a button (thanks Kevycat) .
* [changed] Help screen now shows zoom info.


Logged

Kevycat
Level 0
***

I'm just a cat.


View Profile
« Reply #14 on: February 26, 2018, 03:23:22 PM »

Thanks for updating the help screen! I also notice the the acceleration/deceleration seems better now though it might just be my imagination. The one thing I noticed that could be fixed is that the camera rotates the same amount no matter how zoomed in or out, so if you're zoomed really dar in it feels kind of slow but if you're zoomed really far out it feels super fast. I would suggest using a square root or something similiar for the speed, but linear could work too.
 Tongue Wizard Tiger Panda
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #15 on: February 27, 2018, 06:06:59 AM »

I'm happy you like it Smiley

I think I might tweaked the values a bit but forgot to mention it Wink

It's interesting what you say about camera, I haven't thought about it! I think it's exactly as you described and the end result is that it feels way faster once you are zoomed out. This is nothing an animation curve can't fix (to have full control on the effect) Smiley

I've wrote it down and will see what can I do about it in the coming days. Thanks for noticing it Smiley



And now time for some updates!

Update 013 - Engines
* [added] Engine glow is now depended on the engine power (throttle).
* [added] Engine light effect is now also depended on the engine power (throttle).
* [changed][internal] Lots of code cleanup and modularization.

As always any and all constructive feedback is highly welcomed Smiley




Logged

Kevycat
Level 0
***

I'm just a cat.


View Profile
« Reply #16 on: February 27, 2018, 02:54:44 PM »

I played the new version, and found a new bug. When before it would show negative speed if you were going backwards, now it just shows zero. Also, the asteroids don't have collision. This might not be a bug, but I would suggest giving the space ship a rigidbody component so that it can bounce off of the asteroids.
 Panda Tiger Wizard
« Last Edit: February 28, 2018, 06:01:09 AM by Kevycat » Logged

Kornel
Level 1
*



View Profile WWW
« Reply #17 on: February 27, 2018, 11:03:21 PM »

Oh, that's interesting! Thank's for finding that Smiley

I got a question if may: I was thinking about removing the reverse speed altogether. The more I look at other games the more I think it serves no purpose. I think only 1 game in this style has it (Star Trek Online) and I don't think I ever used it there in any meaningful way. What do you think about if it was removed?

Collisions are a bigger topic. As you noticed there are none at the moment. And your suggestions is a good one. But there are to things preventing me from using rigidbody and calling it a day Wink
  • I did quite a lot of trickery to get the movement the way I wanted - not saying it's impossible with physics but it will not be as straightforward
  • and multiplayer: at some point I'd like to test it out - I haven't dug deep in to it yet, but from what I read it can be tricky to get the build-in physics going (and we are talking about star-system scale). I might be wrong here and I'm open to suggestions.
Logged

Kevycat
Level 0
***

I'm just a cat.


View Profile
« Reply #18 on: February 28, 2018, 05:19:42 AM »

With the reverse thing, I on't really know. Later on in the game it might end up being useless, but now it's good for more precise manuevering such as going into the center of an asteroid for fun. If rigidbody collision doesn't work, there's a unity function you can put on a script that triggers when you collide that's named onCollision or something.
Blink Blink Panda Tiger Wizard
Logged

Kornel
Level 1
*



View Profile WWW
« Reply #19 on: February 28, 2018, 05:56:15 AM »

Yeah, good idea, I think I will use this feature you're talking about. Perhaps once I get to the shields, then I can combine it with the shield effects and damage. I will also know by then what ship's bounding boxes will be like.

And now, update time!

Update 014 - Bug fixes and changes
* [added] Based on a suggestion, now the camera rotation speed is depended on the distance from the ship.
* [changed] Reverse speed can be set per ship. And is lowered by default. Will see what is the future for this feature.
* [fixed] Camera rotation is now framerate independent.
* [fixed] Negative values of speed and throttle should now work correctly (again, thanks Kevycat).

As always any and all constructive feedback is highly welcomed Smiley



Logged

Pages: [1] 2 3 ... 6
Print
Jump to:  

Theme orange-lt created by panic