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

Post

Week of April 27, 2014

#1
Sunday, April 27, 2014

I don't know. It was a confusing day of emotions. It really was.

I sat there, watching a large frigate loom over me as it rained down four transfer beams onto one of the thousands of notable nearby asteroids. The blue that washed over the field was even more intense than usual - bigger ship, bigger beam, after all. But seeing it from 3rd-person this time...watching someone else do it...it was really something special. I felt excited. I felt happy.

As eight pirates closed in on me and started showering pulses in my general direction, I became less happy. Scared, excited, and proud of my AI. All at once. Like I said, confusing. Damivitech Mining Frigate #12 didn't budge. He clearly wasn't going to be scared off by a few small fighters. Smart choice, too, considering they appeared uninterested in him and only interested in me.

Pretty much all day I was bordering on euphoria. Seeing so many things come together...it was amazing. I wanted to cry. Or laugh. Or...sleep? No. Not that :crazy: Anyway...this game is ridiculous, and it's getting more ridiculous by the minute :D

100% Real AI Mining (Finally)!

Yeah, the AI is finally using transfer beams like everyone else. It's fantastic. I was planning on doing 50% hack, 50% real for the monthly update - make them use transfer beams but secretly invoke the mining event directly. Within a few minutes of switching to transfer beams, though, I quickly realized that the AI did not need any help. It was doing just fine with the 'real' gameplay. Fighters buzzed from roid to roid, constantly tickling new spots of the surface in search of rich pockets. So much for 50/50...we're going 100% real. They neither want nor need my help :shock:

Most of my time today was spent getting all of the 'real' AI working :geek:

HUD Stuff

Worked a lot on the target markers for the HUD. Boring, don't want to talk about it :ghost:

Priority-Sorted Lighting

For performance reasons, I had to put a limit on the number of lights that can be rendered. With 100+ ships in a system, 4 or 6 thrusters on each, muzzle flashes, individual pulse lights, as well as transfer unit hits...it was adding up fast. I didn't check the numbers but I'm sure we were well over 1000 lights. So I set a limit and made the renderer sort them based on visibility.

Great results. When I fly over to an asteroid and watch one guy mining the rock, I can see the blue of the transfer unit bathing the rock, just as expected. I can even see his thrusters light up. And yet, there are more than a hundred other locations where that's happening. If I travel to any one of them, I would, once again, see correct lighting. I can also see the light from the larger mining barges a long way off. Sweet :thumbup:

7-Minute Station Algorithm

I was tired of the shish kebab stations. But I didn't want to spend more time on graphics today. So I said, "OK Graphics Josh, I have a challenge for you. You have until the end of this song to write a new station algorithm." The song had just started and was a little over 7 minutes. I unlocked his cage. GJ lept out and got to work immediately. It was a tense offer. He knew he would get only one shot.

7 minutes later, I basked in the glory of something that...well, it wasn't great, but it sure looked a lot better than what I had previously. A new song started and, as I locked the cage once more, all I could see on his face was a cheeky little smile. The monkey knew he had done well. He hadn't gotten much play time, but it was enough for him. He had used it well :monkey: :clap:

---

The tally is up to three insane days in a row. But we're going to need to go for 5 if this update is to be as good as I believe it could be :shock:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#2
Monday, April 28, 2014

Another powerful day, but not as emotional as yesterday, thankfully. It's amazing how quickly one acclimates to seeing beautiful things and working AI :ghost: Bit of a shame, really.

Today's focus: none! As it always happens, millions of small things to wrap up for the update. Thankfully, I think this month is going to come to a cleaner finish than last month. Things are generally working and I'm generally happy with them :D Performance is the only thing that I can think of that might be a last-minute issue, but I'm trying to profile and optimize a bit each day.

Not going to bother with a laundry list of the changes from today like I usually would...frankly, that's time I could be spending making more changes right now :D

Come on, let's keep going! Finish strong :clap:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#3
Tuesday, April 29, 2014

Pshhh what do I look like, a magician? No, I can't write a dev log and keep sprinting at the same time!! :ghost: :D

That's right, I'm going to do the unspeakable and leave you all with two short, tension-inducing logs in a row. It will be a good update. It has been a good month :D :squirrel:

The sprint is looking like it will finish on-time! Let's hope the next time you hear from me is in the update anticipation thread, where I usually post when I've started uploading the video ;)

Now then. The morning is still quite young, so I'm certain we can fit at least a few more hours of coding... :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#4
Wednesday, April 30, 2014

A Day in Numbers

Duration of Update #16:
Spoiler:      SHOW
26 minutes, 5 seconds
Total Size of Update #16:
Spoiler:      SHOW
1,624,380,491 bytes
Total Size of Limit Theory (Win32) binaries:
Spoiler:      SHOW
3,084,288 bytes
awesomeness(update_16) / awesomeness(update_15):
Spoiler:      SHOW
~1.34
Number of times I had to switch between Linux and Windows today:
Spoiler:      SHOW
INT_MAX
Number of items remaining on my before-the-update to-do list at the beginning of the day:
Spoiler:      SHOW
12
Number of items remaining on my before-the-update to-do list at filming time:
Spoiler:      SHOW
0
Number of hours since I was last asleep:
Spoiler:      SHOW
~39
Suspiciously non-numeric symbol:
Spoiler:      SHOW
Z
Number of hours I will sleep after posting the update:
Spoiler:      SHOW
~14
Number of codec combinations tested for Linux screen capture:
Spoiler:      SHOW
~15
Mystery number:
Spoiler:      SHOW
10
Hype train scale factor:
Spoiler:      SHOW
9.5x
Number of (full-length) failed attempts to record video:
Spoiler:      SHOW
3
Number of (full-length) failed attempts to record voice-over:
Spoiler:      SHOW
1
Number of Bothans who gave their lives for this update:
Spoiler:      SHOW
None!! Here at Limit Theory we employ only the most humane development update processes to ensure compliance with local Bothan treatment laws.
Special surprise:
Spoiler:      SHOW
:wave:
...

YouTube upload ETA:
Spoiler:      SHOW
~1 hour
Josh's Extrapolated Don't-Trust-YouTube ETA:
Spoiler:      SHOW
~2 hours
True ETA:
Spoiler:      SHOW
Soon™
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#5
Thursday, May 1, 2014

Success! For the first month in as long as I can remember, I get to say "that was less painful than last month"!

Very happy to finally have a workflow where I can record in my linux version of LT. This should make things considerably smoother in the future, although I still need to look into improving the quality of the capture. As for the actual content of this update, I honestly think I'm more excited than anyone (probably because I've actually held a controller in my hand and played the thing). When I look back on April, I'm so very pleased. Odd, because it felt like a lackluster month while it was happening. Now if, during May, I could reach a level where I feel happy with the month while it's still in progress...goodness...what would I feel when I look back on it?? :shock: :monkey:

Anyway. Very much looking forward to my day off (no, this wasn't it - I spent almost all day sleeping or napping :shifty: ). We've got a big line-up of activities to get through, but at the top of the list is undoubtedly Elder Scrolls Online! I'm dying to check it out (it was a tragic tease when my box arrived last month and I knew I couldn't touch it until my day off :cry: ). Hoping to revisit my old friend Vvardenfell :) But if that doesn't work out, well, there's always Morrowind just one click away.

On the other hand, there are a lot of non-LT code ideas that I'd love to play with. Hmm...choices, choices. I almost wish I had one day off for 'fun fun' and then another day for 'work fun" :lol: But perhaps I can squeeze them both into the same day.

As it turns out, I think I'll now grab one last bit of sleep for the day :shifty: And then onward to Tamriel! :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#6
Friday, May 2, 2014

Well, not the day off I was expecting or looking for...but it still turned out to be awesome! :)

So I tried really, really, really hard to install Elder Scrolls Online. Thing is, it's like 25GB or something like that. And my CD had some kind of scratch on it or something, because I couldn't install successfully from CD. So I had to download the client from their website and try to install that way. Problem is, 25 gigs + my internet is bad news. To add to the pain, it's not a very good updater because every time my internet would bug out, the whole thing would fail and I'd basically have to start over :cry: Suffice it to say that after three tries or so I decided that watching an installer fail wasn't how I wanted to spend my day off. I'll try again sometime this month so that I can have it ready for next day off..

But! It wasn't a total loss, because I was able to pick back up with a little game that I used to play a few years ago and just recently went into 1.0. It's a terribly addictive but really, really fun little 2.5D, top-down multiplayer shooter. It's like CSS in 2.5D but way better because there are loads of skills / spells that are super fun to use. So...many hours lost on that today, but it was great fun and I don't regret it at all! If you're into that sort of thing, I highly recommend giving it a try :D

Oh, and there was a lot of The Office watching as well :)

Alright then. May is upon us. The last two months have been the best yet for LT...will this trend continue? I'm pretty sure I know the answer... :squirrel:

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

Re: Week of April 27, 2014

#7
Saturday, May 3, 2014

I decided to start off the month with a bang :D

The Great Optimization War of May 2014

Over the past two months I have really pushed the engine to the limits with the number of NPCs that we've been seeing in-system. That was especially true for #16, where, for the first time, we saw the real transfer unit logic being used by numerous NPCs at the same time (and with multiple beams per ship, to boot!) On top of that, we saw numerous pulse lasers colliding in real time with the full scene. Talk about one heck of a massive math problem to solve each frame! I'm honestly still a little shocked that the engine handled it well enough to record at a smooth framerate :D When I first enabled the real transfer unit logic for NPCs, I was thinking, "oh boy, here we go...for my final trick, I'll make my computer burst into flames!" Surprisingly, the engine handled it (mostly) like a champ, and without any burning :)

That being said, we're certainly pushing against the upper limit. There were upwards of 128 ships in the last update, and I can't get much more than that right now without seriously hurting framerate. Now, 128 is a great start. In fact, it might even be enough for the populous systems. But we'd still like to push higher. More importantly, we'd like to know that there is some 'headroom' - that whatever we do for the final game is not too close to the engine's limit.

For this reason, I've decided to take a few days this month to dedicate to some hardcore profiling and optimization. I want to just get in the zone and rip away at those milliseconds. I will, hopefully, consider this to be my last major pass on physics and general entity optimization before release. My goal is simple: to push the max NPC count as high as I can. That's a good stress test, because it really tests all facets of the engine: entity logic, physics, AI, rendering, and the sound engine. All of those systems are put under intense strain with 100+ NPCs in one zone. For now I want to push to at least 200+ at smooth framerates, which will make 100+ seem easy for the engine. I would love to see a 100 vs. 100 ship battle at a silky-smooth 60 fps :geek:

It's worth noting that OOS sim isn't even a concern for me at the moment. I know I've said this before, but I'll say it again: the in-system parts of the game completely overshadow everything that would remain running for nearby systems. Like, completely. I can't even see the macro AI appear on profiling graphs. It is tiny, tiny, tiny compared to a hundred full-scene ray queries per frame + rendering thousands of objects + updating detailed state for thousands of objects. So once in-system performance is tackled, that will be...the bulk of the optimization war!

Today I've gotten out to a good start. I'm starting with a full 256-NPC test. Things were very, very bad at the beginning of the day - so bad, in fact, that the engine would simply crash. Now fear not, it's actually not the LT engine's fault (well, not too much). It is FMOD (the sound system) that causes the crash, because it cannot handle that number of sounds in one system (even if they are virtualized (why it places a limit on virtualized sounds is beyond me, as that seems to completely defeat the purpose...)). At any rate, I was able to quickly fix that and move on to bigger issues. I took a lot of low-hanging fruit today and already have 'playable' performance with 256...but certainly not smooth. Lots of work left to be done :)

Buckle up guys, it's gonna be a fun few days :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford
Post

Re: Week of April 27, 2014

#8
Summary of the Week of April 27, 2014
  • Implemented 100% full mining AI! (including multiple transfer beam control logic!)
  • Implemented prioritized lighting for supporting huge numbers of lights efficiently
  • Implemented new station algorithm
  • Generally took the scale of the game to a whole new level (literally and figuratively) :D
  • Billions more improvements in the final update-week sprint!
  • Successful and less-painful-than-last-time dev update #16!! :clap:
PS ~ This week was so full of awesome I feel like this list doesn't even do it justice. So here's a PS just to make sure we all remember :ghost:
“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 3 guests

cron