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

Login with username, password and session length

 
Advanced search

1364804 Posts in 63861 Topics- by 55744 Members - Latest Member: Nirlah

August 24, 2019, 07:42:46 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsThe Last Boundary - A Space Adventure
Pages: 1 [2]
Print
Author Topic: The Last Boundary - A Space Adventure  (Read 2486 times)
nbrignol
Level 0
*



View Profile
« Reply #20 on: June 05, 2019, 01:13:11 AM »

Good news ! We are waiting Smiley
Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #21 on: June 07, 2019, 04:28:28 PM »

These last couple days I've started work on the star map. The idea is that a random number of stars, their planets, and the planets moons are generated. The numbers of star systems is somewhere between 15 and 20, maybe more or less, I'll tweak it later. These are then arranged into "steps" according to how many minimum jumps I want the player to take to get from the current system to the destination system.

So if there were 15 stars generated, and I wanted 5 steps, the process would go as follows:

  • Take the first star and put it on it's own "step", it's the start
  • Take the last star, and put it on it's own "step", it's the destination the player is trying to reach
  • Divide the remainder, in this case 13, by the number of steps I want, 3 stars per step.
  • These means the second "step", after the first, has 3 stars. So initially the player has three choices to move to
  • The next step has 3, then another 3, then another 3
  • The final step before the end step has 1 star, so the player must pass through it
  • Then the stars are randomly "connected" so that the player can always reach every star from the step above, but every star may not lead to the next step, so you have to move horizontally to a neighbouring star.

In-game the reasoning is that the computer has calculated what it thinks are the most likely jumps to get home after the player has been blasted off into space. Then the player can make their moves to get home, each time coming across random events. Each system may give the player something beneficial, or something bad.

It may not look like much, but here's the work in progress:


I'm really very happy with the pixel-perfect lines and circles.

The names of the stars is randomly generated. I based the name list off how I understand stars are named. Firstly, they can be named after a constellation or a catalog designator, these are just stored in a big list. I put the list together from wikipedia. Then it's just a dash and a randomly generated number. I like the results, it seems really spacey.
« Last Edit: June 13, 2019, 05:09:01 AM by Deckhead » Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #22 on: June 11, 2019, 04:45:32 PM »

I've spent these past few days working on the star map and transitioning to it. I've dusted off my old Noise Generation library in order to generate some nebula for the background, I'm pretty happy with the results.

This screenshot is at the engine renderer's native resolution, but it's upscaled before being displayed.

Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #23 on: June 12, 2019, 09:32:47 PM »

Some more WIP for the Star Map.



I've got little system graphics, not that they serve any gameplay purposes though.
Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #24 on: June 18, 2019, 05:14:44 AM »

I've added a couple of new things.

First, I've now animated the little system graphics. It serves no purpose but the little planets will move around at different orbital speeds around the star.

Second, I wasn't happy with the nebula in the background of the starmap. It was too smooth. I realised that this is because the game sort of looks limited palette but then the nebula has far too much colour variation in it. So first, I reduced the colour it used via a median-cut algorithm, but I didn't much care for those results, so I added floyd steinberg dithering to it and it looks pretty good.


But this has sort of shown me that I really need to work on the games palette and come up with a single set of useful, and minimal colours that everything can be done in.
Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #25 on: June 23, 2019, 09:11:18 PM »

I've re-done the median-cut implementation because I found that the one described on every website and wikipedia isn't really very good. They discuss recursively splitting boxes/cubes/arrays until you reach the appropriate number of colours. However, none of them discuss what to do when a box contains only one colour, it's a waste to split it. I found that the algorithm as described ended up with duplicate palette entries.

So instead I split boxes based upon which box has the largest range of colour. This means, that the boxes with the biggest variance are split more, which much more equally splits my auto-generated palette amongst the colour range of the image. It also has the added benefit that I no longer need a power of 4 etc palette, but can instead generate a palette of 7 colours.

I also implemented some auto-dithering in the image. The results are pretty good, and will work with what I want.


Next, I've started all the events from scratch. Now, the first event someone comes across will always be an intro-event to set the scene and get the player blasted across the universe. For now, there's only one intro, but in future I would have several random ones that might take place, just to make it interesting.
Logged

Superb Joe
Level 10
*****



View Profile
« Reply #26 on: June 24, 2019, 12:42:36 AM »

Tactical Randolph would be a great username

looks cool
Logged
Deckhead
Level 0
***



View Profile WWW
« Reply #27 on: July 02, 2019, 10:03:05 PM »

I've now got a playable demo available. It's pretty short. You can play through multiple times and will get some slightly different outcomes.

https://deckhead.itch.io/the-last-boundary

I would love to get some feedback.
Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #28 on: July 28, 2019, 07:58:52 PM »

Based on the feedback I recieved from the few people who took the time to playtest, I've made some changes.

Big Space
I've changed the galaxy that you're exploring to now be about 100 star-systems. This means that you're able to scroll around on the galaxy map to fit it all in. To make it look a little more pleasing and make the connectivity of the universe a little more interesting, it has been constructed as a Gabriel Graph, which is a sub-graph of a Delauney Graph. It gives some interesting structure to the galaxy, but I am still weighing up doing it as some sort of Nearest Neighbour graph instead but right now this is giving me all the stuff I want.

I've also changed it so that you can only see the connectivity two systems ahead of you.


More Interesting Battles
Based on feedback, I've made battles more interesting. Every battle is it's own thing, which means each needs to be created and tailored to the events taking place. Where I would want some consistency in game-play mechanics, I would just copy-paste script from one event-node to another; but it means there can be options available only in this one battle. For example, an enemy may have several parts of their ship to destroy, or maybe you need to target the fighters before the main ship etc.

The downside is that battles take a looong time to create. Here's the only battle I've created so far, against a small unmanned craft that has only phasers and no shields (this would be I think the simplest battle). The screenshot encompases the entire encounter.


Gameplay
Again, from feedback, I've changed the resources you manage to more thematic things. Deuterium is what you need for fuel. Resources is everything you need for the crew. Shields, Hull, Torpedoes, Life-Support, Phasers, and Crew should all be pretty obvious.
They interact as follows:
  • Deuterium is used based on how far the system you're travelling to is
  • The more Crew you have, the more Resources you use when travelling between systems
  • If your Shields are less than 100%, you will damage you Hull as you travel
  • Shields and Hull can be damaged in combat, as well as Life-Support and Phasers. Hull damage is combat means you lose crew
  • Torpedoes are used in combat
  • Life-Support determines the upper-limit of crew you can have. 100% Life-Support allows for unlimited crew members.
  • Phasers deal less damage the more they are damaged
  • Less than 1000 crew makes everything worse

I think I need to add in Engines to the mix, so that it takes longer to travel when your engines are damaged, and your ability to maneuver in combat is reduced.

Artwork
This wasn't based off any feedback, but I'm in desperate need for artwork. The art I've done to date is I think pretty shoddy; and I'm dreading the amount that I'll need to make.

I'm considering doing the artwork for an event only once I know it's done and won't change.
Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #29 on: August 06, 2019, 03:14:28 PM »

I've now started work on some of the artwork. I'm not very good, and I imagine that this game will be a pretty big learning curve. Anyway, here it is, the second peice of art I've ever made:


This is a space-probe, powered by an A.I. that approaches the player when they enter a specific system. There's a fair bit more to it after that. But no spoilers.

Here it is when you first see it:


The inspiration for this guy came from this image.


Next things
Having done this I've realised that I need some sort of arbitrary animation. In the above you can see the probe moves around a little, this is animated in the engine. But I thought it would be cool if the little light on it flashed or something, or a glint would move across the solar panel.

To do this I'd need to add animated background image support to the engine. Not that big of a deal. But the current animation of moving around is also something that needs to be addressed. Right now, I just crammed it in, but I need to make it a modifiable setting when creating the events. Some backgrounds, like a planet, shouldn't move, others like this should move. Some might move a lot more rappidly, like maybe this guy will when he gets aggitated by the player.
« Last Edit: August 06, 2019, 03:26:24 PM by Deckhead » Logged

Deckhead
Level 0
***



View Profile WWW
« Reply #30 on: August 12, 2019, 09:05:52 PM »

New Artwork

I've been hard at work learning how to do pixel-art. I present you with my new "ship crashing into a sun" artwork:


New Ship

This is replacing the old artwork here.


Old Ship

I think it's a big difference. I know that the pixel-art probably isn't very good, but I'm proud of it. I'm a little concerned about the amount of time it took, because that means it's going to be a long time to get enough content together to actually release a game.

From now on, I don't think I'll share any new artwork, so as to leave some stuff as a surprise.

Transparency Fixes

I finally fixed a long-standing problem to do with transparency in the game. Basically the OpenGL Blending functions I was using was causing the semi-transparent parts of textures to be reduced. This was due to a bit of offscreen rendering that I was doing onto fully-transparent textures, which allowed for my effects to work.

The fix was to just draw a big black rectangle on some of those textures so that they were no longer transparent.

However: I still have an issue with the OpenGL renderer to do with text. If text is anti-aliased, it won't render correctly due to the semi-transparent pixels used. I don't need to fix it for The Last Boundary because it's using a font that doesn't have any anti-aliasing when rendered at the sizes I use. But it will need to be fixed for future games.

Animation

I've added animation too now. The event backgrounds can be animated. The big blue sun you see there is actually animated; it actually runs for about 13 seconds, consisting of 45 frames. I need to improve the animation a lot; for now, I'll leave it as is, but I'm looking into how to make the little flarey bits around the sun animate nicer, it's a lot of work, especially considering I've never done art before and I've got a big canvas there to animate.

Resource Manager

I've improved the overall game engine as well by adding a Resource Manager. Originally I didn't have one because I didn't think the game was big enough to really need it.

The game probably still isn't big enough to need it; but the reason I added it was because I wanted it to have a really nice feature. The ability to reload resources while the game is playing. What this let's me do is reload an animation, or a texture, or a frame of animation, a sound, anything, and the game immediately change.

So I can leave the game running on the above screen with the spaceship and sun, and just edit the animation a little in Aseprite and then instantly see how it looks in game. Very powerful, and really improved my workflow.

The way the engine handles this is now, instead of some code having some TextureData that it had before (which was a struct with the GLint of the texture and some metadata); it instead has a ResourceHandle<T> (which is just a shared_ptr<T>). That way the manager, as a global static class, can just reload as needed (every 10 seconds for example), or at a button press. Anything with that handle instantly gets updated.

It's been coded in such a way that any resource type that needs to be managed, just needs to declare it's own specialisation of the ResourceManager template class as a typedef, and provide some static function ptrs.

That's it for today.
Logged

morgothpsilos
Level 0
*


View Profile WWW
« Reply #31 on: August 15, 2019, 05:34:15 AM »

As a space fan (and a huge Star Trek fan) this project appeals directly to my heartstrings  Kiss

I'll be sure to keep an  Blink on its progress! O7
Logged

Hearthstead: Hand Point Right Website - Twitter Hand Point Left
Deckhead
Level 0
***



View Profile WWW
« Reply #32 on: August 20, 2019, 04:04:34 PM »

This last couple weeks has been spent on some key initiatives. With some feedback from my partner, I also have some new ideas that I want to implement.

Event Rewrite
Firstly, I've decided to re-write the events, keeping the gist of them, but re-writing them. The reason is that after feedback from a few people, and playing through them myself, they weren't really right. The combat against the Space Probe for example, was short, but even for how short it was, it was boring and un-inspired. So re-write is the way to go.

New Features
While undertaking the rewrite and discussing it with my partner, I've decided to add something new to the engine, the ability to have scenes outside of the bridge. I still want to keep things relatively restrictive, so the author of events (that's me) now has the option to set the scene:
  • On the Bridge
  • In a Shuttlecraft
  • Through a Helmet

While doing this; I've also had a think about the music. Now, it will fade in and out at opportune times. Events can specifically fade in and out a music theme or a specific track. To aid this, there are now some "soundscapes" that I've put together for each of the above settings (so far I've only actually done the Bridge), but the others will come soon.

This also brings to mind about 100 other small new features I can add. For example, allowing there to be a fade-in and fade-out between two events.

This is all behind-the-scenes stuff though, so I haven't really got any new screenshots to show. These will make the narrative, which is the core of the game, a lot better. All these little improvements really help me to tell different little bits of information and story, without having to describe it all in words.
Logged

Pages: 1 [2]
Print
Jump to:  

Theme orange-lt created by panic