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


Week of August 31, 2014

Sunday, August 31, 2014

Can't stop folks! Just can't stop. So much done, but so much to do. Need to push this update out. The code is flowing, both the LTSL and C++.

Honestly, I'm already 105% convinced that LTSL was a worthy investment. At the rate that ideas are flowing now, I can't imagine my life without it. Gone are the days of painful, slow recompilation. Gone are the days of thinking about an idea over and over to make sure it's perfect before I code and try it. In with the new: push the idea straight out of my brain onto the old LTSL scratch pad, watch it play out in game, iterate and re-iterate all within the same minute. Ideas I would have never even given a second thought before the days of LTSL are now explorable in just moments. Sure, some of them are useless. Little UI widgets that emit nodal particles that respond to mouse movement, dancing across the UI. But some of them are more than worthwhile. Scriptable market interfaces. Scriptable dev tools. Scriptable AI.

Sorry, no words of wisdom today...only: LT, the LT Engine, and LTSL have never been so exciting before. Too much fun. But need to translate this fun into visible progress ASAP. Just requires hours :) I feel like I'm in the content sprint. Finally, I feel like I'm there. I no longer need to stop and add new features to the engine every few minutes. I'm finally to the point where it's totally comfortable to go an hour without restarting the game - just iterating and iterating in script. Love it!!! I knew the day would come.

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

Re: Week of August 31, 2014

Monday, September 1, 2014

The sprint cannot end! If you've not already seen it, behold the glorious executive decision: August has grown another week, and September has lost one! The dev update will come out on September 8th (aka the end of August 2.0) I think this is a nice way to diffuse the vacation's lost work time over two months.

It's been a while since we've seen the good old list-o-changes devlog without any further adieu:
  • Implemented several scripted combat scenarios to get back into the combat AI and graphics arena. In script, I can quickly set up combat scenarios to test AI logic as well as profile the game's performance under heavy duress. Great fun :)
  • Continued work on the (scripted) simple trade UI
  • Wrote a 15-minute custom reticle just to flex the LTSL muscles
  • Fixed a major piloting issue that caused turning to be framerate-dependent, making ships feel less maneuverable at low framerates. All aspects of piloting are now completely framerate-independent, which makes it much more difficult to ascertain the game's framerate without using an FPS graph. Awesome :geek:
  • Added support for spawning AI players to the system generator script. AI factions are back in full force!
  • Enhanced LTSL's support for pointer types in anticipation of directly accessing object components. Scripts can now directly access any component - tasks, bank account, bounding box, storage, hangar, etc. without any further work to expose them via the script API!
  • Replaced many of the game's calls to UI widget creation with script calls. Implemented all of those scripts with basic calls back into the engine to create the default, hard-coded widget. This means that most of the in-game UI can now be replaced with custom components simply by changing the corresponding script to return a custom, scripted widget rather than returning one of the built-in, hard-coded widgets. This is awesome. It means at any moment, I can hijack any of the in-game widgets by modifying their creation script, and replace them with anything I want. If I want to start iterating on the market interface, all I have to do is open up Widget/Market.lts and replace the Create function. All of the changes take effect immediately without restarting the game, and the next time I open a market node, it'll show my changes. The same applies for cargo, object nodes, missions, player data, etc.'s all wide-open!
  • Implemented automatic default constructors in LTSL for super-easy instantiation of custom datatypes
I have little doubt that this week of development is going to be one of the most exciting to date, as I'm finally in the thick of fast UI and AI content iteration. Loving every minute of it :)
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of August 31, 2014

Tuesday, September 2, 2014

I'm not even sure what's happening anymore. I feel like I've been asleep for half a year. Wandering around in some haze, grasping for some blurry vision from a half-remembered dream....clinging to any half-baked idea that might get me an inch closer to the many-miles-away finish line. That's harsh, but I've always been harsh on myself and it works. Anyway. I'm not sure what happened, whether it was the two weeks of vacation, or the miraculous streak of luck that led me to LTSL, or the fact that I've crossed some threshold percentage of completion where it's finally possible to see the end result. Whatever it was, I'm happy. Every day the inspiration grows, like a cancer taking over my being. There's no turning back.

Anyway, today? Who knows. It was a blur. 18 hours of code..or something like that. I rewrote the interface, I pushed further into the 'real' UI with several new (scripted) widgets, I improved the performance of zones, and I continued to play with scripted combat scenarios. There's probably only one thing in that list that warrants some serious discussion. Yeah, I rewrote the interface. Again. Is that...the fifth time? I don't know.

Let's be real here folks. I love the nodal UI. I love the layer-based nodal UI, or whatever the hell I used to call that thing. But here's something I've learned about myself over these two years: when I stumble upon a new idea, I inevitably get too excited about it and try to push it further than it should go. That's a blessing and a curse. In some cases, more of one than the other. When I first started to develop the ideas surrounding the nodal UI, I looked at them as though they were the second coming of Christ. I believed that the nodal UI could fix everything that was wrong with LT, prevent all future rainy days, and allow me to grow wings and cruise at a comfortable altitude of 10,000 feet above the Earth. Here's the hard truth: it can't. The nodal UI brought a lot of really quality ideas to the table: the idea that a widget is representative of some object in the game. The idea that widgets are connected in a hierarchical structure that reflects some real structure of information, ownership, containment, etc. The idea that this structure should be dynamic and should change immediately to reflect structural changes in data. But the linear UI did what traditional UIs have been bred to do: it presented a lot of information in a compact way. It appealed to the modern consumer, who has become exceptionally proficient at navigating oceans of data with scrollable lists and windows. It wasn't afraid to introduce a custom aesthetic or layout to present a certain type of data in a unique way. Today I finally overcame my ego trip and brought the two together. I wrote a UI that keeps all of the elegance of the nodal UI, but maintains the simple and practical beauty of a traditional one. I knew that it's what I had to do to push further, because the idea that I must package all information in a neat, nodal bundle has been holding back my creativity for a long time. My religious belief that the nodal UI would lift me into the heavens prevented me from taking the actions necessary to move forward and finish the game. It's not the only belief that's been holding me back, but demolishing it is a good start.

That's the hard truth, and it's a truth that I confronted and took action against today. I'm back and I'm back in full force. Anything that holds me back from the completion of my dream game and the shipping of a beta is going to get obliterated. The strict belief that everything should be hard-coded was the first of many casualties, which has been ruthlessly slaughtered over the past two months. The strictly-nodal UI was another barrier that I sentenced to a speedy execution today. Luckily, I've already made concessions in the AI department, and I'm fairly proud of how well I've balanced elegance and practicality.

Not sure why it's happening, but I seem to be in a zone of unparalleled focus and drive to bring my Freelancer 2.0 online. Yeah, it's been a good week so far. Let's see how it plays out...hopefully there won't be quite as much blood :ugeek:

PS ~ I swear I'm not crazy. Don't give up on me :lol:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of August 31, 2014

Wednesday, September 3, 2014

Ok, ok. Need to pull myself away from work for a moment...really don't want to have a third devlog savings time anytime soon :roll:

The week is progressing at a tremendous pace. The synergy of LTSL, a clean game engine, the best-of-all-worlds's almost too much power to cope with. Even still, it's tremendously frustrating having so much power and being bandwidth-limited by things like how quickly my fingers can move and how many hours I can work before the fog of sleep starts to move in. At the very least, though, I'm enormously grateful that compilation is no longer in the mix of frustrating bottlenecks!

Instead of listing the changes from today, what I'd like to do is list a few goals for myself to accomplish for the rest of the week (yeah, sneaky, unifying my planning time with my devlog-writing time...). I believe most, if not all of this, is doable with the rest of today and 3 more solid days of coding before the 8th.
  • Fully-functional, re-implemented HUD using the new UI
  • Improved HUD target widgets (the things that you see overlayed on game objects), including...
  • Context menus for fast actions! (Target, engage autopilot, etc etc..)
  • A creative prototype for the AI pilot interaction menu, including a mockup of a procedural graphic generator for giving each pilot a distinct UI symbol
  • A full re-test of the player-side prospecting drone / transfer widget / mining process to bring it all back into the updates
  • A finished trade window prototype!
As you can see, I've got my work cut out for me :geek:

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

Re: Week of August 31, 2014

Thursday, September 4, 2014

No. :cry: Did literally no work today :shock: :cry: But it wasn't for lack of desire. I'm writing my devlog in bed, and have been in bed for the whole day, struck with a random bout of hardcore sickness. I've no idea where it came from, but do have a suspicion that the lack of sleep lately and general intensity of the past week has something to do with it. That sleep debt really is an unflinchingly-cruel mistress.

Hoping to get out of bed soon...yes, I still believe yesterday's list can be accomplished, provided my body gets over its little cry for attention and returns to submitting to the unbending will of the final week's sprint.

Wish me luck :|
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of August 31, 2014

Friday, September 5, 2014

Yes :) Back on track today. Guess my body just needed a quick break from the fun ;)

It's that time of the month (well, by proxy) where I have no time for anything other than a list! I'm happy to announce that progress on the final checklist is well underway. It's still going to be a stretch, but, as we all know by now, I sure do love me an overly-optimistic goal ;)
  • Exposed camera handling and projection in LTSL for use with projected HUD widgets
  • Implemented first-pass target widgets in HUD. Experimented with various basic animations for targeting. Having the combined node + linear UI is already proving to be of tremendous power here, because it's much, much easier to do creative things with the target widget. I haven't implemented a circular context menu yet, but
  • Implemented a basic grid widget in the linear UI and test drove it with the cargo interface. I was having trouble implementing a generalized switchable list / grid view in the nodal UI due to the way I had structured the layout code, but I've re-thought that part for the new interface and am now going to have absolutely no trouble writing a switchable view. Soon to come :)
  • Started my work on visualizing NPCs with a bit of creative particle system work in LTSL :D Far from satisfied, but the speed of iteration is inspiring and gives me a lot of hope about the final result.
Looking forward to the final two days. They're going to be amazing :geek:
“Whether you think you can, or you think you can't--you're right.” ~ Henry Ford

Re: Week of August 31, 2014

Saturday, September 6, 2014

No time for a log today folks, you know how that goes :) The final sprint has been a non-stop LTSL euphoria trip. But it's not over yet -- the midnight oil will burn through the wee hours of the night, and said hours will be squeezed of their utility and hung out to dry.

That checklist is in surprisingly-good shape. The only one I kind of doubt at this point is the full mining pipeline. But we're going to have more to show for August than I ever imagined ;)

See you soon..!!!

“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 1 guest