Jump to content

Stormwind's Blog


Open Source at Descendent Studios

Posted by Stormwind , 04 September 2016 · 2,326 views
open source, blinken, chroma and 1 more...
Open Source at Descendent Studios

I'm happy to announce our open source initiative here at Descendent Studios!


We use both open source (including many tools and libraries) and available source (like Unreal Engine 4, which is commercial with source publicly available - and uses many open source libraries itself) in the development of Descent: Underground, so we wanted to give something back to the development community by making some of the code we've created available.


You can find Descendent Studios' open source and available source development at: https://github.com/DescendentStudios


Our projects include:

  • BlinkenPlugin, a plugin for Unreal Engine 4 (UE4) that controls accessory lighting like Razer Chroma, Alienware AlienFX, and Logitech G from both C++ and Blueprint.
  • PingPlugin, a UE4 plugin that allows ICMP pinging of hosts from Blueprint so UIs can display ping times.
  • XMPPChatPlugin, a UE4 plugin to use XMPP chat (think Jabber) via Blueprint so in-game chat systems can be implemented more easily.
  • ExtraConfigPlugin, a UE4 plugin to manipulate input and graphics configuration from Blueprint so configuration UIs can be implemented more efficiently.
  • Our contributions (additions and fixes) to several existing open source projects like OSVR-Unreal, nodervisor, discord-xmpp, and others.
We hope the development community finds these projects useful - we'd love to hear if you use them! And if you improve them, please submit a pull request to us as we'd be very excited to continue development together with the community. We also hope to add more projects in the future.




Tech Underground - Virtual Reality Edition!

Posted by Stormwind , 29 June 2015 · 9,044 views

Tech Underground - Virtual Reality Edition! Greetings Descendents!

Rob Irving's Design Underground with Rob Irving has taken the day off - giving a chance for Tech Underground to rise to the occasion!

Silliness aside, in this inaugural episode of Tech Underground I discuss Virtual Reality development in general and specifically in regards to Descent: Underground with Finn Staber, VR advocate extraordinaire and Programmer/Designer from fellow indie dev Portalarium (making Shroud of the Avatar).

(Please go easy on me - I'm new at speaking for more than a few minutes at a time on camera. For example, I need to stop saying "uh" so much!)

We continue to plow forward on our first vertical slice - the game engineering team has recently worked on the following:
  • Flight Mechanics continues to be worked on - integrating our flight model and UE4 physics and network replication is proving a fun challenge.
  • Shields, Armor, Hits, and Explosions are in - shields then armor takes damage, effects play, and ships blow up.
  • Basic HUD has been completed - showing shield and armor status, energy, ammo counts, and more.
  • Basic Anarchy Game Mode, Basic Login, and Drone Bay are almost done.
  • Build System - we continue work on our automated and continuous build system built upon the open source Buildbot.
Have any ideas for topics of future Tech Underground segments? Share them in the comments and we'll see what we can do!

Preparing for Descent,
- Jason


Tech Update #5

Posted by Stormwind , 03 June 2015 · 2,857 views

Tech Update #5 Hello Descendents!

It's been a hectic time in engineering at Descendent Studios since the last tech update! Here are some of the highlights:


NVIDIA visited our office recently and gave us the low-down on current and upcoming graphics tech they have available. Being a small team we have to be very conservative with what we can spend the time to integrate (and of course anything already integrated with Unreal Engine 4 is much easier for small developers like us).

Given the above, we were particularly interested in HBAO+ (Horizon Based Ambient Occlusion+), VXGI (Voxel Global Illumination), and Gameworks VR.

VXGI demo video from NVIDIA and Byzantos:

In addition, some tech NVIDIA developed like PhysX and APEX destruction are already integrated into Unreal Engine 4 making their use easy for UE4 developers.

(Older) APEX Destruction demo video from NVIDIA:

And don't worry - we'll make sure the game works great with video cards from all the major GPU vendors.

Game Engineering

Game development continues on the Modular Ship System, which we are revamping to work better, have many more features, and be easier for artists and designers to use compared to the previous iteration of the system seen in the crowdfunding videos. We've planned out the tech design of Ship Stats and will implement it as soon as the Modular Ship System is done. Tech planning and implementation of Doors (yes, Doors, there are several types of doors in Descent: Underground that all work differently) is happening right now too - it is a small task, probably about 1.5 person-days. In addition, we've begun tech planning on a large long term task - the Matchmaking System. We're also working on the long-term tech roadmap.

Web Engineering

Web development is currently concentrating on a redesign of the front page and related pages, to make it easier to get news updates as well as better appeal to first time visitors and gamers who have never heard of Descent.

And of course tech planning and design continues for upcoming work after all of the above work.

That's it for now - keep preparing for Descent!

- Jason


Tech Update #4

Posted by Stormwind , 30 April 2015 · 2,988 views

Posted Image

Hi all!

I thought folks would be interested in a tech update - the engineering teams are working on three main tasks currently:
  • Importing the KS data to our web site to get all backers their badge, ribbons, and packages displayed - and letting Kickstarter backers who don't yet have DS accounts claim their pledges.
  • Clean-up some of the game code used for the Kickstarter video.
  • Further tech design and planning as more game design decisions and changes are made.
Since the Kickstarter data import has been getting the most questions, I'll give some detail on it.
  • We exported early, incomplete data from Kickstarter to examine the format and data, and get a head start on the process. We also wrote a user and tech design document to describe the requirements from user's perspective, the methods we plan to use, and any technical challenges or caveats we had to handle.
  • We created packages (the entity that represents what a user purchases) in the e-commerce software, and we also created groups and award ribbons in the forum software.
  • We researched the e-commerce software API but found they had no API method for assigning packages to users, so we then researched it's DB schema to figure out how to do so cleanly.
  • Then we exported the final data from Kickstarter once they finish collecting all the pledges possible.
  • We then fixed up that data (because it comes in per-reward files, many with different columns) and imported it into a DB.
  • Next we wrote code to match the entries in the Kickstarter data with DS accounts, and review the matches to look for any potential bugs or problems. For example, we found some false positive matches on one iteration - we had to change the code to not match them. We also didn't want to match login name responses of "Nope" to a user named "Nope" - otherwise they'd end up with a lot of unexpected rewards! :-) In general, we have to make the code handle all those special cases or we have to manually modify the data to avoid those problems.
  • We then create code that will apply the rewards to the appropriate accounts and send emails to the users, and we create pages that will allow for manual matching or account creation for pledges that couldn't be automatically matched to existing DS accounts.
  • We also updated the store showcase page code to show package groups so we can show Underground memberships and add-ons in the store.
  • In addition, we are parsing and (also) manually processing the survey results and Kickstarter comments for pledge add-ons. We may not get the add-ons processes in the first pass you'll see of the Kickstarter data import: if not, we'll keep working on it so you see it soon.
Where are we now? We're currently tweaking the imported data, finishing up the automatic and manual matching, and creating and styling the web pages involved.

Of course, there are a million little details, caveats, and gotchas that we've dealt with so far - and we expect a few more too. However we want to find and fix all of them in our development environments during testing, running the process over and over on a test copies of the real production data, before we release it and apply the changes to the live web site and user data.

But it is all worth it - to get your pledge and reward data on the Descendent Studios web site for your viewing!

Thanks to Elfindreams, StealthGuy, and Fallarnon for all of their hard work on the Kickstarter data import!



Tech Update 3

Posted by Stormwind , 24 March 2015 · 3,141 views

Tech Update 3 Hi everyone

The excitement around the return of Descent is great!

The community's enthusiasm for Descent: Underground is awesome, and drives us to work with you to make the game even better.

One of the most common technical questions we've been asked is - Why did we choose Unreal Engine 4?

Some of the factors that put Unreal Engine 4 in the lead of our evaluation:
  • Advanced rendering features - PBR (Physically Based Rendering), GPU particle simulation, materials, post-processing effects, and more to make D:U look great!
  • Wide platform support - including all the major PC platforms (Windows, Linux, Mac).
  • Low latency and high framerate rendering plus continued VR development - because VR is made for 6 degrees of freedom gameplay!
  • Impressive tools - for example, technical designers and gameplay programmers can implement gameplay logic in Unreal Editor via the Blueprint visual scripting system, allowing quick iteration when creating features and polishing the game.
  • Continual support and development - with Epic Games frequently releasing updates via Git and/or Perforce for easier merging into the Descent: Underground codebase.
  • Flexible licensing model with low cost full source code access with updates - the new engine licensing models, with low to no upfront costs, are great for bootstrapped startups like us.
  • Stability - we expect Unreal Engine and Epic Games to be around and in the engine business for a long time.
In summary, Unreal Engine 4 was the best fit for the features and gameplay of Descent: Underground.

Additionally, we now have a Steam Greenlight page! Go there and help vote us up!

And coming up soon - Look for Rob Irving's Design Underground to be released at 4pm CDT tomorrow on our YouTube channel, subscribe to keep up to date.

Also, look for Eric "Wingman" Peterson's AMA on Wednesday at 11am CDT on Reddit.

Preparing for descent!
Jason Stormwind Spangler


Web site server migration completed

Posted by Stormwind , 24 February 2015 · 1,529 views
website, server
Hi all,

We've migrated the web site to Google Compute Engine with a scalable cluster in anticipation of increased load during the crowdfunding campaign.

Please let us know if you notice anything broken since the migration.

We know we are still missing an MVP blog entry by Connie due to an auto test tool mistakenly crawling from a test environment to the production environment and deleting some posts (since restored) and blog entries.

We are working to restore the last missing things (just one blog entry, we know of so far). And please let us know if you notice any other missing content (posts, blog entries, etc).

If you still get a "site maintenance" message, it means the update to the DNS address has not propagated to your name server yet - just wait and it should update eventually.



Greetings, Starfighter!

Posted by Stormwind , 16 December 2014 · 2,137 views

Hi all!

Thought I'd toss up a post and let you know what I've been up to.

First, an introduction - I'm Jason Spangler, CTO of Descendent Studios. A few of you might already know me from segments on Wingman's Hangar, from other parts of Star Citizen during my time as CTO of Cloud Imperium Games, or from my time on Ultima Online.

In addition to participating in the game design and studio discussions, some of the things I've been working on include:
  • Game engine evaluation - after comparing Unreal Engine 4, Unity, and CryEngine we decided to go with Unreal Engine 4. Why? Advanced features, a great renderer, impressive tools, continual support and development, flexible licensing model with low cost full source code access with updates, and company stability all factored into the decision.
  • Basic prototyping - we did some very basic game prototyping, but had to pause it for the following...
  • Web site preparation - with the great set of volunteers on the web team, we've been working on getting the web site ready for the upcoming crowdfunding campaign. This includes:
    • Putting the web site source code in source control - in this case git via GitHub, since it is low-cost, known by many developers, and we already get game engine updates via GitHub. Plus we can use the basic issue tracking and wiki to coordinate development among all the developers working on the web site.
    • Making the web site easy to duplicate to create development and test instances - so we can develop new features without taking the web site down, and test a new version of the web site while keeping the current version running before deploying the new version to the production web site.
    • Using the web site software's CMS system to manage the front page, so others can develop a new front page integrated with rest of the web site so live content can be displayed there.
    • Setting up and testing payment providers in our e-commerce system for later crowdfunding support.
  • Standard system administration stuff - accounts, backups, web server configuration, etc.
In between those tasks, I've been doing the standard game developer rush of taking care of as many real-life chores between projects that I put off during the last project - since developers rarely have time to do those chores while working on an active project. ;-)

Well, that's it for this update. Post any questions or comments you may have, and I'll try to answer the most popular ones either in the comments or in a future post.

Thanks for reading, and for being interested in our next project! See you in the 'verse!

- Jason

Recent Entries

Recent Comments