Wednesday, February 5, 2020

Plans for the future of Cosmoteer

Greetings Cosmoteers!

I want to bring you up-to-speed on my plans for Cosmoteer from now until it launches on Steam Early Access. I wrote a long forum post detailing those plans which I encourage you to read, but here's the TL;DR version:

  • There won't be any major updates for a while because I'm focused on creating a new singleplayer campaign mode.
  • I have hired an artist (longtime Cosmoteer modder "Kroom") to improve Cosmoteer's graphics. Check out a sample of his new graphics below!
  • The recent 0.15.6 update will likely be the last major "free forever" update. Future major updates will require you to buy the game on Steam. (But any version you've already downloaded will keep working.)
  • There will probably be a free BETA before Cosmoteer launches on Steam Early Access. Keep an eye out for news about that, hopefully later this year!

Cosmoteer's new graphics coming soon...ish!

In the meantime, I hope you will keep enjoying the free version of Cosmoteer!

Friday, November 8, 2019

Cosmoteer 0.15.5 - Performance Improvements & New Languages

Cosmoteer update 0.15.5 has been released! This update significantly improves performance in many situations, especially large battles. It also adds three new community-created translations for Brazilian Portuguese, Dutch, and Latin-American Spanish.

What's New

Performance Improvements

Since the 0.15.4 update, I've spent most of my time digging deep into Cosmoteer's code, measuring its performance, and optimizing wherever I can, including better utilizing all of the available CPU cores by rewriting certain algorithms to run in multiple parallel threads. This update is just the beginning, and there's more work to be done, but already I have made very significant performance improvements to audio/visual effects, ship A.I., and general gameplay code. I haven't even done any work optimizing physics or crew A.I., and already players are reporting great improvements in framerates, especially in large battles and with large ships.

Another improvement I made, which is not technically an optimization per se but should still improve the game's overall framerate, is that now the game will automatically slow down the game simulation when the framerate falls below a certain number. (By default 30 FPS, but you can change it to 60 FPS or disable it entirely.) While this feature isn't perfect and you may still experience framerates lower than 30 FPS, falling below 30 FPS should no longer cause the framerate to plummet all the way down to 4 FPS.

Lastly, for those of you with laptops that have both integrated Intel and dedicated Nvidia graphics, this update should now make the game use the dedicated Nvidia graphics by default, improving performance in graphics-bottlenecked situations such as when running at a very high resolution.

New Language Translations

The 0.15.4 update introduced the Cosmoteer Translation Project, which is a community-driven effort to translate Cosmoteer from English into as many other languages as possible. This project has proven hugely successful in a very short period of time, initially introducing German, Spanish, French, Russian, Simplified Chinese, and Traditional Chinese translations. And this update adds Brazilian Portuguese, Dutch, and Latin-American Spanish translations, as well as improvements to the already-existing translations.

If you would like to help translate Cosmoteer into your language or find an error that you'd like to help fix, please head over to the Cosmoteer Translation Project and lend a hand!

... And more!

This update also has a handful of other fixes and improvements, which you can read about in the changelog.

Friday, October 18, 2019

Cosmoteer 0.15.4 - Crew Diversity, Language Translations, & Tech Improvements

Cosmoteer update 0.15.4 is now available for direct download and auto-update via Steam! This update makes the crew a lot more visually diverse with a variety of skin colors, hair colors, and hair styles. It also adds community-created language translations for German, Russian, French, Spanish, Simplified Chinese, and Traditional Chinese. And lastly, it upgrades the underlying technology powering Cosmoteer, which should improve performance and make it possible for players with 32-bit and 64-bit operating systems to play multiplayer with each other.

What's New

Crew Diversity

For many years, the people who have inhabited Cosmoteer's ships have all looked like clones of the same light-skinned, short brown-haired, male-looking person. Honestly, as someone who believes in the value of diversity, I've been pretty embarrassed by how homogeneous Cosmoteer's crew are. Science fiction media like Star Trek and Star Wars, which Cosmoteer is obviously very inspired by, have long portrayed a more diverse future as an ideal that we should strive for. Cosmoteer has for a very long time failed to live up to that ideal.

I hope that this latest update is a significant step towards living up to that ideal of a more diverse future. While still nameless and with identical abilities, the people that crew Cosmoteer's ships now appear more visually diverse with a variety of skin tones, hair colors, and hair styles. And while Cosmoteer does not have any explicit notion of "gender" coded into the game, some of the hair styles evoke traditional male or female sensibilities, at least by our early 21st century standards. (But who's to really say how fashion will have changed hundreds of years from now.)

Language Translations

This is the first update to include translations created by Cosmoteer players as part of the Cosmoteer Translation Project. This is a community-driven effort to translate Cosmoteer from English into as many languages as possible. Initially with this update, Cosmoteer can now be played in German, Russian, French, Spanish, and both simplified and traditional Chinese. These translations are very much a work-in-progress and may contain errors and omissions. If you want to help translate Cosmoteer into your language, head over to the Cosmoteer Translation Project to read more about it.

Tech Upgrade

Cosmoteer is coded in C#, a programming language created by Microsoft. C# itself runs on top of a technology platform they also created called the ".NET Framework". Although it still works great and has been updated many times over the years, the .NET Framework is fundamentally a pretty old technology, having been around since 2001. Over the past few years, Microsoft has been working on a successor to .NET Framework called ".NET Core", a more modern and much improved technology. Earlier this year, Microsoft announced that further development of .NET Framework was being stopped in favor of concentrating on .NET Core. And just a few weeks ago .NET Core 3.0 was released and included all the features needed for Cosmoteer, which finally allowed me to switch to it from .NET Framework.

There were a lot of advantages to switching to .NET Core:
  • The most immediately noticeable advantage is that performance has been significantly improved. In some situations you might see framerate as much as double.
  • .NET Core doesn't require a separate framework to be installed on the player's computer, which took time and was prone to errors. 
  • .NET Core allows players using 32-bit and 64-bit operating systems to play with each other, which was not possible under .NET Framework.
  • .NET Core paves the way for supporting Mac OS and Linux. Cosmoteer doesn't support those yet, but .NET Core brings the game one big step closer to that future.
The only major disadvantage to .NET Core is that now Cosmoteer's download and installation size is much larger, because it no longer installs the .NET Framework separately and has to include everything it needs to run within the application itself. The new installer is about 200 MB, more than twice as big as the old installer.

... And more!

This update also has a handful of other fixes and improvements, which you can read about in the changelog.

Friday, October 4, 2019

Cosmoteer 0.15.3 - Medium & Large Reactors

Cosmoteer update 0.15.3 is now available for direct download and auto-update via Steam! This update adds two larger reactor sizes, a 3x3 "Medium" reactor and a 4x4 "Large" reactor, in addition to the existing 2x2 "Small" reactor.

What's New

Medium & Large Reactors

The Medium Reactor is a larger 3x3 variant of the existing 2x2 "Small" Reactor. It costs twice as much but produces three times as much power, making it overall more cost-effective than an equivalent number of Small Reactors.

The Large Reactor is an even larger 4x4 version. It costs four times as much as the Small Reactor but produces nine times as much power, making it by far the more cost-effective option for large ships.

In addition to producing power more rapidly, these new reactors also make bigger batteries. The Medium Reactor produces batteries that are twice the size compared to the Small Reactor, and the Large Reactor makes batteries three times the size of the Small Reactor. This allows crew to carry much more power per trip, further cutting down on the overall cost of using Medium and Large reactors compared to using multiple Small Reactors.

These new reactors have their own downsides, though. Most importantly, the Medium and Large Reactors have much larger explosions when they are destroyed, so you'll need to be very careful about protecting them. Here's an example of a Large Reactor exploding:

Additionally, when crew pick up batteries from a Medium or Large reactor, it takes a small amount of time to fill the batteries. A Medium Reactor battery takes 0.5 seconds to fill, and a Large Reactor battery takes a full second to fill. (Small Reactor batteries still fill instantly.) This makes Medium and Large reactors less useful for directly supplying power-hungry systems like Shields and Ion Beams than the Small Reactor.

The most effective way to utilize Medium and Large reactors is to have them in central locations relatively far from the weapons and other systems that need their power, but to have closer Power Storage rooms to quickly supply power. Your crew will pick up power from the Medium or Large Reactor and carry it to the Power Storage (ideally utilizing Moving Walkways for maximum speed) where, upon delivery, the double- or triple-size battery will "split" into multiple single-size batteries, ready for quick delivery to the nearby systems. You can use the crew A.I. customization tools added in the previous updates to setup smart "supply chains" between reactors and storages.

... And More!

This update also has a handful of other fixes and improvements, which you can read about in the changelog.

Friday, September 20, 2019

Cosmoteer 0.15.2 - Reactor & Factory Assignments

Cosmoteer update 0.15.2 is now available for direct download and auto-update via Steam! This update allows you to assign reactors, factories, and storages to supply other parts on your ship, prioritizing supplying ammo or power to those parts and preventing them from supplying any other parts. It also improves the camera by adding auto-tracking of on-screen ships, plus a handful of other improvements and fixes.

What's New

Reactor & Factory Assignment

The previous update, 0.15.1, added the ability to assign squads of crew to exclusively prioritize specific weapons and other ship systems. Now, the 0.15.2 update brings a similar feature to reactors, factories, and storages:

If you open Crew mode and click on the "behavior" tab, you will now be able to select a supplier (reactor, factory, or storage) by left-clicking on it and then right-click on another weapon or ship system you want that you want to supply. The targeted weapon or system will then prefer to get its power or ammo from that supplier whenever possible, and the reactor, factory, or storage itself will then never supply anything else which it isn't targeting.

You can use this feature to further optimize your ships. For example, if you want to make sure your crew will never go to a farther reactor to pick up power for a laser blaster, then you can simply assign the closest reactor to that laser blaster and then any crew picking up power for it will only ever pick up power from the assigned reactor. You can even use this to create "storage chains", such as assigning a factory to a storage, that storage to another storage, and so forth, reducing the distance that any single crew has to walk across your ship.

Related to this feature is a change to the behavior of when you assign a crew squad to a factory. In the previous update, a crew squad assigned to a factory would only ever pick up power for that factory and would not pick up ammo from that factory to deliver to other weapons, unless the squad was also assigned to those weapons. But in this update, a crew squad assigned to a factory (or reactor or storage) will now also pick up ammo or power from it and deliver to any weapons or other systems, even if they aren't specifically assigned to those. If you don't want the crew to either supply power to, or pick up ammo from, a factory, then you can simply disable those jobs in the crew's role's job priorities.

Camera Auto-Tracking

One of the big things I learned playtesting Cosmoteer at PAX West was that new players often struggle to control the game's camera, especially during combat as the ships are almost always moving. Yes, the game for a long time has had various features for locking the camera on ships, but it takes a while to learn how to use those features, and until you do, trying to keep the ships on screen can be pretty frustrating.

So in order to make the game less frustrating for new players, this update also adds a simple "auto tracking" feature to the player's camera. Basically, unless you have specifically locked the camera on a ship or the eye icon, the camera will now automatically match the velocity of and move with any ship on the screen, keeping it in the same relative location. If there are multiple ships on screen, it will simply match the average velocity of all of the ships. This feature should greatly reduce the need to use the other camera-locking features (which of course are still available), but if you don't like it, you can simply turn it off in the camera settings.

... And more!

This update also has a handful of other fixes and improvements, which you can read about in the changelog.

Saturday, September 7, 2019

Cosmoteer @ PAX West & Update 0.15.1

Last weekend I attended PAX West in Seattle to showcase Cosmoteer as part of Indie Megabooth. PAX was a ton of fun, and working with Indie Megabooth made the experience so much easier than if I had to do everything myself, so I am greatly appreciative of all the effort they put in to making PAX a success for Cosmoteer! I estimate that about a hundred people got to play the game on the expo floor, and the reception seemed overwhelmingly positive, making me more optimistic than ever about Cosmoteer's future success!

Here are a couple photos of my booth at PAX:

If you're interested, I also gave a couple interviews about Cosmoteer. I didn't announce anything new that active followers of Cosmoteer don't already know about, but if you've ever wondered how I sound and look, here you go:

Cosmoteer 0.15.1

In other news, Cosmoteer update 0.15.1 is now available for direct download and auto-update via Steam! (This news actually comes about a week late since the update was released last weekend while I was still at PAX, and I didn't have time to write up a new post, but better late than never!)

Like most updates, 0.15.1 has a variety of improvements and fixes, but the major new feature is the ability to "assign" crew squads to do jobs for specific weapons and other ship parts. To do this, select the squad's bedroom and then right-click on the weapon or part you want to assign them to. While assigned, crew will prioritize doing jobs for the assigned part and will not do jobs for any other parts. This will override any custom 1-10 priorities that have been set. (To assign a squad to multiple parts, hold Shift while right-clicking. Role priorities will still be used to choose between multiple assigned parts.)

You can use this feature to optimize your crew's efficiency and to prevent them from wandering off to other parts of your ship without having to resort to compartmentalization.

Read about all the other improvements and fixes in this update in the changelog.

Friday, August 16, 2019

Cosmoteer 0.15.0 - Crew Squads, Roles, and Priority Customization

Cosmoteer update 0.15.0 is now available for direct download and auto-update via Steam! This is a major update that adds crew squads, roles, and job priority customization. Here's how it works:

Crew are organized into "squads" of 2 or 6, where every crew bunk or quarters is a squad. If you want, you can manually move individual crew between squads by going into the crew U.I., selecting the "CREW" tab, selecting the individual crew, and right-clicking on the bunk or quarters you want to move them to.

Your ship also has one or more "roles" for its crew. Each squad is assigned a role for the entire squad, which you can do in the crew U.I. in the "ROLES" tab by selecting the bunk/quarters and then clicking the button for the desired role. Each role can have a custom name, shirt color (which is also the color of their bedsheets!), and set of job priorities. You can create up to 20 roles per ship.

To customize the name, color, or job priorities for a role, click the little "hamburger" menu button in the corner of the big role button and select "Edit Role". This will open up a window allowing you to customize the role. To customize the role's job priorities, click on the "Job Priorities" tab, which will allow you to set the priority of each job for each ship part. Each job can be set to a priority between 1 and 10, where a higher priority number will take precedence over a lower priority number (i.e., crew will do a priority 10 job before doing a priority 1 job). You can also click the "no" sign to disable that job completely for that role, so crew with that role will never do that job.

As a side-effect of switching to this new customizable priority system, the A.I. logic that controls the crew has actually been significantly simplified. Before, the A.I. would make complicated calculations to determine the priority of a given task, taking into consideration things like how much power/ammo a part already had. But that's all gone. Now, if a part needs 3 batteries, 3 "supply battery" jobs will be created, each with the same 1-10 priority (whatever priority you set that job to). Hopefully this change should make it easier to understand why your crew are doing the things that they are doing.

You can read about all the other improvements and fixes in this update in the changelog.