Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411594 Posts in 69387 Topics- by 58444 Members - Latest Member: YomiKu_0

May 08, 2024, 01:41:14 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsUnnamed spacegame
Pages: [1] 2
Print
Author Topic: Unnamed spacegame  (Read 4408 times)
ollipekka
Level 0
**


spacegamedev


View Profile
« on: July 15, 2016, 11:58:45 AM »

Introduction
This is the devlog for an unnamed space strategy game. The idea is simple: you are in charge of your mining company and your mission is to be the biggest and baddest mining company in your segment of the asteroid belt. Your tools to accomplish this are:
- Scouting
- Mining
- Research
- Battle

The target audience is hardcore gamers who enjoy old school games. Inspiration for the game mechanics is drawn from games such as Jagged Alliance and Master of Orion. The visual style has been inspired by Battleships Forever and Warning forever.




Features
The gameplay is done on two sceens: Tactical Screen and Strategy Screen. Tactical Screen is used for combat, encounters and mining operations. Strategy Screen is used for moving fleets and producing ships. The victory condition is to "unite" all mining operations in the area under one company.




Module System
The game features a module system where player can build custom ships. All the modules and embedded things such as weapons, radars and propulsion systems damage separately. Research mechanic is in place to guide player advancement. Modules come with pre-defined connection points to other modules and mount points for embedded entities. The module system is moddable from ground up.

Implemented embeddables:
  • Propulsion systems
  • Sensors
  • Projectile weapons
  • Beam weapons
  • Missile weapons
  • Drone pods
  • Hangars




Physics-Based Combat
The game relies heavily on box2d. The configuration of the ship contributes toward the weight of the ship and players must carefully balance between manoeuvrability, offensive power and armor.

Damage is modelled on per-entity basis. If the propulsion system of the ship is damaged enough and the fleet doesn't possess sufficient repair capability, it is entirely possible that fleets may have to abandon capsized ships. Likewise, with clever tactics, it should be possible to capture and repair ships from enemy fleets.




Tech stack
The game will be desktop only and should be playable on Windows, Linux and OSX.

The tech stack used consists of:
  • libgdx
  • kotlin
  • box2d

The art has been drawn with Gimp.

Finally
This game is my sparetime timesink, there is likely going to be long breaks between updates. The game is largely seeking its shape. For example, the game being a strategy game is a recent development. The development pace will be slow. The imgur album is a good indication of the development pace as the game is combination of various concepts that I have implemented over three year time span.
Logged

bdsowers
Level 3
***



View Profile WWW
« Reply #1 on: July 15, 2016, 01:32:04 PM »

It's looking like you've made some really solid progress.

Could you talk a bit more about the physics-based combat? Is it possible for an attack to knock your ship off course or perhaps for a poorly constructed ship to crumble apart?
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #2 on: July 18, 2016, 10:54:29 AM »

Right now hits affect via box2d, so theoretically large enough projectile can knock your ship off course.

It would be possible to find out how hard projectiles hit and knock modules off that way. Or having big guns mounted on weak modules crumbling your ship. Perhaps it would be worth investigating this once more basic mechanics are done. I've had some plans to include things like rigging small asteroids with thrusters and turning them into missiles, but those are unimplemented aside from small experiments. Similarly there's possibility haul in dismembered components, but right now that mechanic is not fun and is too of micromanaging to be fun. Perhaps same mechanic (using distance / ropejoints) can be turned to some sort of weapon where you can launch marines/drones onto ships using harpoons.

Currently priorities are:
  • Complete ship building mechanic
  • Finalize mining mechanic
  • Design and implement research mechanic

Finally some visual progress. After doing the progress bar, the placeholder UI skin should now be finished for the most part:


The good thing is that I now understand how to skin most Scene2d UI components. The skin is now dull gray, but perhaps I'll start giving it some proper spacegame look with some scifi neon colors and futuristic shapes.
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #3 on: July 28, 2016, 06:59:25 AM »

Most of the time has gone into ship construction. Decided to take a break from UI work to add to hit effect to indicate which module has been hit.


Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #4 on: July 30, 2016, 04:04:14 AM »

Construction ship build queue:


Build queue selection screen:


These will be redone, but right now they are enough to enable ship construction.
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #5 on: August 05, 2016, 10:17:57 AM »

Lot's of small stuff going on. I finally got the ship building mechanic down.

Player is able to:
  • Design new ships
  • Construction time and cost are reflected by the design
  • Player can add ships to the construction queue
  • Ships get constructed over time and added to players fleet

I also decided to go a bit further than just a barebones PoC and added a new InlineList component that I couldn't not find in scene2d ui. It allows lists with multiple components. It should come handy in future:


I have now moved to creating the research logic and I've had a bit of problems doing a simple flexible but moddable approach to research items. I have been inspired by civ / xcom / MOO style research systems where you can research new tech, but also discover passive bonuses. For implementation I have two competing approaches:
  • Totally data driven where items are JSON and everything is predefined.
  • Research items are executable script.

I'm tempted to take the first approach even though it is less flexible and requires more work. It basically means that I have to code every single research item type.

Examples of tech:
  • Muzzle velocity of kinetic weapons increased by a certain percent.
  • Gives Tier I 40mm cannons to to player
  • Increases damage of beam weapons

My biggest fear with script based approach is that while flexible, it will turn into mess fast. After research, I should really start working on the world map AI.
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #6 on: August 21, 2016, 02:19:00 AM »

Research is now implemented. Player is now able to unlock new tech via researching various topics. By exploring the map player is able to unlock new research items. There are also plans that player is able to acquire tech via random encounters

Types of tech implemented:
  • Unlock tech
  • Boost effect (only muzzle velocity increase for weapons is implemented)

Once content is there, player is enabled to pick multiple paths. They can research a better ship capable of fitting a powerplan that allows using beam weapons, or player can research better kinetic weapons and scanners.
   
Externalized all data. Data is now stored as google spreadsheets.
- https://docs.google.com/spreadsheets/d/1mq5pPrrGETPubN-xDLxrSMMLAtEcsiKpd_RJV_4YeGg/edit?usp=sharing
- https://docs.google.com/spreadsheets/d/1XNRymNp7zxI1SVujyTRMTmUFgWwShFw4slxP58m_9vY/edit?usp=sharing

This needed to be done. I don't want to write an editor for this and I'm comfortable with spreadsheets. Spreadsheets also enable balancing calculations so that I can evaluate coolness of weapons by deriving values.



Next, I will work on adding more content and focus on bringing the world map alive. In games like Civ and MOO I've always disliked how empty the world map is. I've planned some random encounters. Think of Ultranauts from Revelation Space books (https://en.wikipedia.org/wiki/Factions_in_Revelation_Space#Ultras) that will trade with the player and allow the player to gain tier or two better tech.

Other than that I ran into a problem with libgdx. It's json deserialization didn't work that well with things that derived from Map<TKey, TValue> class. Additional type information was left in the deserialized map.


Added a test and submitted a PR about it.
Logged

PetterBergmar
Level 2
**


Animator by day, gamemaker by night. And fridays.


View Profile WWW
« Reply #7 on: August 21, 2016, 02:34:10 AM »

Just wanted to say looks very cool! Sort of reminds me of Escape Velocity (although that was very different)
Logged

Twitter: @pbergmar
ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #8 on: August 27, 2016, 10:44:23 PM »

I wasn't perfectly happy with the world map and I wanted to play around with hex map. In the process there were some interesting fails:


Next time I'll remember that vertex count is not the same as primitive count. The end result is fairly satisfying:


This needs tweaking, but it performs decently. For example I'm not entirely happy with the outlines.

I also started adding armors. There are default armor paths for research, but by killing a critter (sort of like amoeba, eel or hydra from MOO II) and capturing its body player can unlock research outside of the tree. One of them is 'Dense Chitin Polymers' research topic, which allows equipping ship modules with better light armor. Armor itself will work so, that on the ship design screen, player can add armor to the specific modules, this will increase both the cost, weight and damage resistance of the module. This will enable access to better tier tech early on, all you have to do is to defeat a dangerous space monster.


Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #9 on: September 11, 2016, 09:32:06 AM »

Improved the hex world map. I'm happy with it for now. Still working on the stuff that I outlined in the previous update. Mainly bringing the world to life via random encounters AI and actually stuff that the player can gain.

Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #10 on: September 15, 2016, 07:00:37 AM »

Turn based movement is now almost done:
Logged

badrobit
Level 0
**



View Profile
« Reply #11 on: September 15, 2016, 08:44:51 AM »

Very interested to see where this goes!
Logged
ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #12 on: October 22, 2016, 07:10:47 AM »

Working on the world map turned out to be a lot more than I initially thought. Now I'm able to support on world map:
  • Events, such as battle or pirate attack that persist over game saves. There were initially some dumb implementations that made this impossible.
  • Different game sizes. Somewhere after previous update I decided that I'll make the hex grid small enough that game can be completed fairly fast.

Pirate attack:




On the sector screen I added shields:




imgur is "over capacity" so no pictures this time
« Last Edit: October 22, 2016, 07:35:45 AM by ollipekka » Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #13 on: December 18, 2016, 06:22:06 AM »

Another update:
  • World map is now realtime and pausable. Turn-based gameplay didn't really work out. The game still has turns, but AI works on shorter timespan. Turns take place every N seconds of unpaused gameplay.
  • Separated factions from players. This should pave way to Moo style races.
  • Started working on a "critter" faction. Creating AI hasn't really been easy. I'm not really fond of behaviour trees and it looks like I will pursue hierarchical FSMs.
  • Added in-game ability to edit things and export them. I can now place visually mount points and connection points to ships.
  • Added ransom event. Pirate faction threatens to attack player sector unless paid off.
  • Working swarmer plague event(=critter faction). Swarmer plague starts spreading through sectors and player needs to wipe it off in order to mine from the sectors.

Next:
  • Victory conditions need to be implemented.
  • More stuff to the world map.
  • Computer needs better AI so that it proposes some sort of threat to the player.
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #14 on: January 14, 2017, 07:26:10 AM »

A lot of stuff has happened. I started keeping a technical changelog.






### 14.01.2017
* HUD done with scene2d ui.
* Removed looping sounds.
* Checked out LWJGL3 and it looks like it will be some time it is usable, but it is very promising.
* Music will switch to calm if all enemies are dead.
* Fixed problem with NotificationPanel clicks not working.
* Fixed NotificationPanel messages not aligning left.

### 12.01.2017
* Added ship indicator icons instead of boxes.

### 11.01.2017
* Reverted back to lwjgl2 backend until stereo issue gets sorted out.
* Fixed left / right navigation emitting missing glyph characters.
* Cleaned up Hammerhead.

### 09.01.2017
* Fixed damage label to show module id and remaining hitpoints.
* Removed continuous beam weapon.
* Removed global executor service and added it as property of EntityWorld
* Added Kremator missile.
* Added Hammerhead module.
* New ship Therion cruiser, when configured should make use of two small plasmas and either Kremator or Ravager missile.


### 08.01.2017
* Moved to LWJGL3 backend, because keyboard input issues.
    * Game needs to be started with java -XstartOnFirstThread -jar spacegame-desktop-1.0.jar.
* Added explosionEffectIds to ModuleModel and ModuleModelTemplate.
* Made explosionEffectId editable.
* Simplified window sounds.
* Removed audio sfx & m setting and added --disableAudio=true or -da=true
* Added Ravager missile. Larger, but slower missile than Engager.
    * Ravager has been given to Akitsuki by default.
* Added back to hit sounds.
    * Missile and Munition(=Plasma & Cannon Shell) to hit sounds are played when they are removed.
* New sound effects.

### 07.01.2017
* Added this display.
* Renamed BulletWeapon to Cannon
* Renamed ProjectileHit to CannonHit
* Renamed Projectile to CannonShell

### 06.01.2017
* Explosions now have sounds.
* Speed scroll can be performed by holding SHIFT_LEFT down.
* Changed Engager to have more range.





Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #15 on: January 16, 2017, 10:15:16 AM »

Added screen shake to big guns and explosions. I still need to tone them down a bit, since the screen shake gets in the way, especially in big fights.



Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #16 on: January 21, 2017, 10:09:55 PM »

The game has been long misisng some world map AI. Started to working on this by implementing behavior trees. The idea is that behavior trees and nested state machines should get me all the way through:




This is controlled by simple behavior tree:


Full log since last update:
### 21.01.2017
* Added behavior tree for Swarmers. Swarmer now builds mining ships. The idea is that swarmer builds mining ships, construction ships and then gremlins to defend them.

### 20.01.2017
* Fixed a bug with World ui getting duplicated.
* Added Swarmer construction ship "SwarmerPod"

### 19.01.2017
* Started drafting swarmer ai.

### 18.01.2017
* Added small moving effect to all ships.

### 17.01.2017
* Fixed gigantic memory allocation on screen shake.
* Added position component to screenshake so that they are handled only when on screen.
* Added small moving effect when ships are stationary.
* Create all modules for Therion cruiser.

### 16.01.2017
* Fixed screenshake and added it to big cannons and explosions. Still over the top.
* Final icon for ship locators.
* Toned down screenshake.

### 15.01.2017
* Refactored NotificationPanel out from UserInterface and into their own system, after having to touch them
* Ship locator button now hovers.
Logged

gornova
Level 0
***


View Profile WWW
« Reply #17 on: January 22, 2017, 03:08:16 AM »

Really interesting project! I don't know if you already shared on Java Gaming Forum, but I you need players and developers, there are a lot of people there (even myself btw).

Well done so far, looking for the final release! Do you plan an open alpha/beta ?
Logged

Blog | Last game Number+
ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #18 on: January 22, 2017, 10:10:29 AM »

I definitely plan to do open alpha / beta.

For alpha the goal is to be "completable", which means:
- Couple of factions that actually try to compete with player
- Random encounters
- Working research tree

Beta is once the biggest problems have been fixed based on the beta feedback and the game is starting to be fun.

Edit:
Oh, and I'll definitely post to JGO once things are getting more stable. At the moment I don't have resources to keep devlogs in two different places.
Logged

ollipekka
Level 0
**


spacegamedev


View Profile
« Reply #19 on: April 02, 2017, 09:14:38 AM »

It has been awhile. Currently I'm working on energy consumption for the ships.

Other stuff:
- Couple of new ship designs.
- Research tree is starting to form up. Plan is to generate guarded artifacts onto the worldmap, which can be researched to open up new research trees.
- Balanced construction and research. Game is now 'playable' ie. player can create more mining ships and build new ships with new discovered tech.
- Minerals on Asteroids get depleted, so player is forced to 'Advance'
- New track for world map.

New ship designs:
Logged

Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic