Return to “[Archived] Daily Dev Logs, 2012 - 2015”

Post

Week of February 23, 2014

#1
Sunday, February 23, 2014

Today was the day the transfer unit arrived. I woke up early, rushed down to the hangar bay. Over night, the hangar bots had installed the shiny new unit on my humble little ship. I climbed in the cockpit nearly as quickly as I could, blew through take-off procedure, and found myself confronting the same looming asteroid in a matter of minutes. This time, I knew what to do. My drones had slept softly on the surface, but still diligently beamed readouts to my HUD. Yes. There she was. 99% Hargonite. It hadn't been a dream.

My flight gloves glued to the stick, I carefully positioned myself to align with the drone. Odd, I thought. Space felt...somehow, more fluid than before. I drifted easily into position. More easily than I remembered. Ah, what of it - a few days out of the cockpit and I had already forgotten what flying felt like. Either that or someone had tampered with the very nature of space. Hah.

Aligned wth the access point. Here we go. The moment I had been waiting for. Would it be worth the cash I sunk into that thing? Let's find out.

I squeezed the trigger. A bright blue light flared up where the unit was installed. It formed itself into a coherent beam and flew towards the asteroid, making rather good time. Upon impact it washed over the surface, lighting the rock and several around it with the cool, pulsating photons of transference. Just like in the advertisement, I thought. Sure enough, I watched as the cargo readout slowly climbed. 2% capacity...4%....8%! Yes, it was working. My heart filled with joy. I had come, I had surveyed, and I had taken this little deep-space treasure for myself.

A few minutes later I found myself back in the hangar bay, this time with a hold at 95% capacity. No, I'm no rich man. Not yet. But with a hundred tonnes of compressed Hargonite to my name, I wasn't doing so bad for myself. I jumped out of the cockpit and headed down to the market district, impatient to discover what offers would await me.

Again, I thought, I would sleep well tonight.
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#2
Monday, February 24, 2014

In this dev log I will start a new trend in an attempt to be more organized :) Instead of just rambling as usual, I'm going to try something new: putting headings and then rambling on that topic :D This has a few advantages: first, you can get a quick summary of the day by looking at the headings. Second, you can skip sections if they don't interest you. Third...maybe I won't ramble so much... :oops:

Boost Capacitors
A few days ago I had an idea for generalizing afterburners that I wanted to try for the sole purpose of making the game more fun. In most first-person games you have some kind of 'sprint' which allows you to move more quickly. In space games we can call it an afterburner. It's a good idea both because it's practical, but also because it's just fun to have that kind of power that you can use any time you like. But why just have boosts for propulsion? I thought, maybe the more general concept is being able to boost the whole power grid.

So the concept of a 'boost capacitor' is a simple one: every power generator also comes with a small 'extra' capacitor, which can store some amount of energy that is equal to, say, a few second's worth of the power output of the generator. Over time, the generator diverts a small amount of power to the capacitor to charge it. When you need a 'boost,' you can then discharge the capacitor into the power grid to overpower all your components for a short time. Weapons, propulsion, scanner, etc. Everything would be overcharged and running at a higher output (if applicable for the component). Like regular power, the boost capacitor's output would be subject to the same power routing as the generator, so if you are sending more power to weapons, then weapons receive more boost cap power as well.

IMO this is a nice way to add a lot of neat features to the player's disposal. Afterburner, DPS boost, temporary scanning range boost (if you think you see something but aren't quite sure), even production boost if you need to crank that missile out just a few seconds faster. Most importantly, it's fun :) And implemented, as of today!

Maybe later on we can also have full-blown backup capacitors as subsystems, for those who want to have a bigger / longer boost available :cool:

Spectral Scanning
We've been waiting for too long, but it's finally here! Frequency-space scanning! Objects can now emit signals of a certain frequency characteristic, and those signals will show up as shapes on the scanner's frequency spectrum. The spectrum is annotated with units, ranging from 1 Hz to 1 ZHz (it's a log-scale spectrum, as you would expect). For now, the emitted signals are fairly simple in form. They are single gaussians of variable power and variance, in frequency space. I emit signals directly in frequency space, as there is really no need to go to all the trouble of computing the temporal signal in the object, storing it in the scanner, and taking an FFT every frame...a bit silly when we can just cheat the whole way through ;)

Maybe later I will increase the complexity of signals that can be emitted, but for now I quite like the simplicity. For a given signal, you will learn where the peak is, about how wide the spread is, and the shape of the spread. I also introduce some pink noise into the spectrum. Pink noise means there's less noise at high frequency, so this has the nice benefit that it's easier to discern higher-frequency (hence, higher-energy) signals. At the really low frequencies, it's harder as there's quite a bit of noise.

It's already nice to be able to see, for example, when I have both some ore and a jump hole being picked up by the scanner. In time domain it would be pretty impossible to tell what's going on. In frequency domain I can clearly see the high-energy, cusp-shaped mountain of the jump hole appearing around the EHz region, and the smoother, more narrow lump from the ore appearing down low in the MHz region.

No, it doesn't really make any sense that ore emits some kind of signal. But who said this has to be EM? Maybe it's some weird type of signal from the future, which is emitted by all 'interesting' things ;) I think we can just accept this as-is for the sake of the game :monkey:

I really love this new scanner :D :clap:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#3
Tuesday, February 25, 2014

Sadly, quite a technical day. But I've just got to get this hammered out...and I've got to get it hammered now :shock:

Unified Interface Viewports
Those who keep up with the logs know that I struggled for quite some time to understand how to best build a HUD using the nodal UI. It's a challenge for any interface, as there are so many different spaces coming into play - screen space (where HUD widgets are drawn directly), world space (where widgets that stem from world objects live), combinations thereof (like the ship view widget, which is projected to one corner in screen space, but internally holds an object-space representation of the player's 3D ship), and even the projected cylinder space (where the whole interface ends up getting projected into the 3D world). But it's even more challenging to try to encode all of this information elegantly. As I hope I've demonstrated by now, elegance in implementation always pays off in the long run.

Previously, I had introduced the concept of nodal 'portals,' to solve the problem of having nodes in both screen space and world space. I knew when I introduced it that it was a somewhat-constraining solution, but I had hoped that it would solve all of the practical cases that I needed. That was mostly true. However, I am now finding that the burden of differentiating between nodes and their portals to be cumbersome. In particular, it gets really bad when we start asking questions like 'how do I select a portal?' I showed this process in the previous dev update when I selected the ship viewer, making it expand into the full screen. What I didn't say is that I had hard-coded a key to do that, because I didn't at that time have a general solution for selecting a portal.

The issue is, suppose we have both world-space selectable nodes, and a portal being projected to a similar region of the screen. Since the portals are 'separate' from other nodes, it makes sense that we would have to do something 'special' to select them (e.g., pop them out to full-screen). But isn't that a bit annoying? Can't I just click on it? But then, what if my probe is projecting a node that overlays very near the portal. Who gets selected when I click? If the portal were a normal node, the answer would be: the closest one. The same answer that 'normal' nodes use to decide which node gets highlighted.

So today, I finally break down the distinction between portal and node, and try to bring some technology to bear that will allow the mingling of various spaces without requiring hard distinctions between them. So far, I have been quite successful, and already have projected nodes being selectable within the same space as world nodes. I'd be lying if I said the process wasn't painful. As with all things, great power comes at great cost. But here lies one of the last remaining demons in the nodal UI. A few hours after I post this log, I expect that demon to have been vanquished :)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#4
Wednesday, February 26, 2014

Massive day, but I'm in full-blown update preparation mode, so quick log today!

The Interface Demon (Unified Nodes / Portals)
Fixed, as per yesterday's log. Done. Lots of other stuff cleaned up on the interface side as well. Still, I have removed the ship viewer in the top right for now, as I need to re-think it from a functionality perspective. It's not really doing anything :think:

Minimap
Finally a decent minimap in the bottom-left! Using exponential projection as well. Looks pretty nice, though maybe needs more variation to help distinguish between object types.

Better Prospector Readouts
Now including total quantity as well as density. This means that are now two factors to consider when prospecting: first, is the total quantity of the deposit worth your time? Then, once you find a deposit that's worth your time, you need to find a good point from which to extract. In the future I would like to add some 'uncertainty' to the quantity readout. Maybe you only know there's "somewhere in the 1000s", etc.

There's a lot of great discussion going on in this thread concerning mining mechanics, so I don't intend for this implementation of prospecting and mining to be final. But it works well for iteration 1 :)

Re-Introducing AI Heuristics
Since I am concerned about control of the AI, I once again allow the AI to use heuristic solutions for certain goals. This allows it to quickly derive many plans. I wish I had gotten more time to work on AI this month :(

The final push is upon us!! Let the caffeine and loud music flow :D

:wave:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#5
Thursday, February 27, 2014

Should have seen it coming. All was going well. Looking fantastic. And then: Windows build. Ha. Same GPU, same hardware, same company making the driver. Different OS, totally different result. Naturally. Dynamic lighting inexplicably broken for near surfaces. Cool. And here I am, almost noon, have not filmed yet.

Another lovely day in the life of a graphics programmer :(

Someday I'll have my revenge on you, graphics hardware vendors. Don't know how, don't know when. But someday you'll pay for the crimes you've committed against programmers everywhere!!! :ghost: :ghost:

Trying to get this fixed as quickly as I can, and then on to filming. I did get a lot of stuff done during the all-nighter, so that's good. But can't talk right now. There is a GPU to wage war with. Pray for my poor card. I don't know if it will survive my fury :roll: :D
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#6
Friday, February 28, 2014

It's amazing...every month, I say, "Wow! Doing the monthly update cannot possibly get any more painful!" And, in general, I am proven wrong :crazy: I'm considering ordering a gas mask and bulletproof vest in preparation for March's update. You can never be too prepared :think: :ghost: If it took 15 hours to upload this time, I imagine it may take up to a week next time :shock:

On the bright side, it's finally here, and I'm really quite happy with it. I think there's a lot of good stuff going on in that video, and for once we see a fairly nice split between graphics / sound / UI / gameplay. What's really missing, as I admitted in the video, is AI. I do wish I had pumped more AI work last month, and then the video really would have been something amazing. But that's OK, March is a much longer month, so I have high hopes :D

Something that people have been questioning is why mass affects top speed in LT. I realize this is not normal physics, just like drag in space is not normal physics. However, the reason is that I implement a mass-dependent drag in LT. Again, not necessarily normal physics - but it's all for the sake of gameplay ;) I will reconsider this and try mass-independent drag to see if I like the feel better (note that this significantly influences the 'feel' of big ships, which is why I used mass-dependent in the first place).

Well, if you'll excuse me, I have a long day of video games and recreational coding ahead of me :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#7
Saturday, March 1, 2014

If a month of LT dev time passes by at the speed of sound, my days off pass by at...about a million times the speed of light :crazy: :roll: Probably because they usually involve a lot of sleep :shifty: Nonetheless, with a healthy portion of gaming and a slightly-unhealthy portion of food, I'd call it a success :D

I got a bit caught up in Starcraft 2, which, for whatever reason, I've become interested in again. I kicked back and watched several pro matches...I think because I really enjoyed seeing how a game could create so much strategy, both macro-level and micro-level. Really an incredible thing. Gives me so much to think about in terms of LT and what a game can do to ensure that macro- and micro-strategy arises. I also pulled out the old Terran and managed to give the 'Hard' AI a good pummeling. Hoping I can work up to 'Very Hard' during my next day off... :geek:

Other than that, I played a bit of X3: AP, which I just bought. Always good to expand one's repertoire of space game knowledge :) Didn't get far enough to really get a feel for the game yet, but, as always, just drifting around in the X universe can be a great experience. Something that I haven't noticed before while playing is that X's ships and stations, in general, don't do a fabulous job of matching texturing to geometry (which I talked about a few days ago). Yet, they still look great. This gives me some hope that maybe I don't even need a really fancy texturing system to make good ships :think: (Speaking of which, I'm ultra-surprised by how positive the reception of that placeholder ship / station was for the video... :shock: Wasn't expecting that...).

Well, I was excited for my day off, but honestly, I'm more excited for March. I can feel big things coming. I've even moved my office back downstairs to 'the cave' once more, in anticipation of the coding-hermit-ness that this month will require. Days will pass, perhaps even weeks, and I will know nothing but LT. I will lose myself in those ones and zeros. It's going to be a fun time :geek:

As for what will be achieved by the end of this month? Well, let's just say - if you don't see NPCs in the next video, fire me. If you don't see research in the next video, fire me again :shock:

Here we go! :D
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of February 23, 2014

#8
Summary of the Week of February 23, 2014
  • Implemented transfer beams and basic mining!
  • Implemented boost capacitors
  • Implemented spectral scanner ("Scanner 2.0")!
  • Implemented a minimap
  • Unified interface viewports and nodes for less code and more cleanliness
  • Painful but successful 14th development update! ("No pain no gain"...)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Online Now

Users browsing this forum: No registered users and 2 guests

cron