Showing posts with label game development. Show all posts
Showing posts with label game development. Show all posts

June 14, 2017

Announcing Interplanetary Enhanced Edition Update! Have a Patch to Celebrate!


Kept you waiting, huh? Well, we’re finally back in action, and there’s a lot of catching up to do! With the help of Team17 and Advanced Interactive Gaming, we’ve had a chance to get back to Interplanetary and devise a cunning plan to finally add the fixes and features we’ve been promising...

Let’s not ignore the gas giant in the room any longer: we’re happy to announce the upcoming Interplanetary Enhanced Edition update! There’s also a small new patch out right now, just to thank you all for your patience.

Interplanetary Enhanced Edition

Interplanetary Enhanced Edition is a sizeable update with a load of improvements and various new features. At this point we are not entirely sure if the Enhanced Edition will be a normal update or appear in your library as a new product, but it will be free for everyone who has already purchased Interplanetary. The main goal of the update is to add the features we’ve been promising since forever, including Online AI Bots and Reconnect, as well as to make the game much more stable. As we explained in our previous post, we had a lot of issues with the very architecture of the game’s code, making it near impossible to add these features and fix the lingering networking bugs. So, how are we managing to do all that with this update? By completely re-doing the whole game, of course! 

  

For Enhanced Edition, we undertook a huge effort to actually rebuild Interplanetary from the ground up. It’s been surreal being able to have a second go at it, redoing the same game, but better. For you, it will be a hefty update, but for us, it’s actually a whole new game project. Development has been much faster this time around, but it’s definitely not a quick task by any means.

It will still be the same old Interplanetary in essence, but prettier and more user-friendly with new features, big and small. Here are some of the things we’ve been working on:
  • Online AI Bots
  •  Reconnect
  •  Elliptic Orbits
  •  Quick Targeting Mode
  •  Tech Tree Graphical Overhaul
  •  New Intel Mechanics
  •  The Ability to Select Building Upgrades On the Build List
  •  New Buildings
  • Rebalance
  • Localizations
  • Planetary System Navigation Enhancements
  • Improved Visuals
  • New and Redone Sound Effects
  • Overall UI Polish
  • Overall Re-Implementation of Systems, Eliminating Old Bugs
  • And more...
We’ll probably give out a few more details on the features as the development continues.
Interplanetary Enhanced Edition will be out this summer!

Interplanetary Patch 1.1.6426

 

On to the patch! We thought that it would be nice to actually give you something concrete while kicking off the wait for the Enhanced Edition. Actions speak louder than words, after all. So, we decided to go our of our way to put out a little patch for the current version of Interplanetary. It’s mostly nice little extra features and balance adjustments. Without further ado, here’s the feature list for the pre-Enhanced patch, available right now: 
  • Navigation Enhancements  
    •  Added the ability to pan the camera by holding Middle Mouse Button
  • New Planet and Visuals
    • New Player Planet: Breach
    • Enabled Starfield Background Randomization
  • 2nd Stage Targeting Polish and Fixes
    • Defense ranges automatically visible when targeting inside their area-of-effect
    • Made planet-clicking easier on Missile targeting by increasing the click area and adding a highlight
    • Canceling 2nd Stage Targeting now takes you right back to Targeting View
    • Fixed a bug that caused the Intel View of the wrong player to be shown when canceling 2nd Stage Targeting
  •  Defense Polish and Fixes
    •  Defense range visuals can be toggled on and off (B)
    • Fixed bugs that sometimes caused defenses to not activate when they should have
  •  Build Menu Polish and Fixes
    •  Improved Build Menu highlights
    •  Allowed tooltips on greyed out buttons
  •  Miscellaneous
    •  End Turn button cosmetic adjustments
    •  Removed analytics
  •  Balance Adjustments
 For the full changelog, visit the Changelog-thread on our forums!

Special Thanks to Team17 and Advanced Interactive Gaming!

Whew, it’s been awhile since we’ve had anything concrete enough to make a news update on. While there’s been a lot of preparation and on/off-work on Interplanetary, we only had the chance to get the whole team back on-board early this year. We have both Team17 and Advanced Interactive Gaming to thank for this chance.

As some of you may have noticed, Interplanetary has been moved under Team17’s label a while ago already. We’ve partnered up with them to release Interplanetary Enhanced Edition and they’ve been helping us a lot already with publishing-related business. As the release gets closer, you might also see Team17’s Jonno roaming around our forums, giving us an experienced hand with community management. Be nice to him!

As sad as it is to admit, we can’t run our humble studio with passion alone. Luckily, we also made an indispensable ally of Advanced Interactive Gaming, who stepped in to help us fund the development of Interplanetary Enhanced Edition.

See, we told you we’d figure out a way to add all those features eventually :D

In Conclusion...

The last year was busy for our team, even though we didn’t get to do much for Interplanetary and almost all we did was internal. We went into details about the reasons for that in our last devblog post. We’ve mostly been occupied with a bunch of work-for-hire-projects, keeping our operations afloat. It’s been hectic, but we’ve learned a lot about different technologies and how to work better than ever as a team. We’ve even been helping our friends at Mushroom Party to release their arcade/action game Mushroom Crusher Extreme, giving us some experience as publishers, of sorts.


It’s been partly refreshing and partly maddening to start reworking Interplanetary from the scratch. We’re very happy we got the chance to do so, since people still seem interested in the game to this day and there definitely are some things we’ve wanted to fix for a long time.

tl;dr:
  • Interplanetary Enhanced Edition update is free for all owners of Interplanetary and comes out this Summer
  • A smaller patch for the current version is out now
And one more for the road: Interplanetary is now 66% off at the Team17 sale on Humble Store. Looks to us like a good bargain.

That’s about it! Do drop by our forums if you have any questions or would like to find people to play with. Even if we’ve been quiet on the news front, we’ve been and will continue to check the forums and answer questions whenever we’re able.

Blast you later!

December 18, 2015

Inside Interplanetary: The Remains of the Year


Ho ho ho! The jolliest holiday greetings from Team Jolly Roger! Hope you've been well, our dear Interplanetarists, and everyone else interested in our misadventures in game development!

It's been a while since we've been actively putting out status updates, blog posts and such. But now, right before we set out for a quick Christmas holiday, would be the perfect time to quickly go through what's going on over here and write about our general thoughts on the passing year.

Interplanetary Musings and Thoughts for the Future

And so it began.

May 12th 2015, we released our first big PC game, Interplanetary, on Steam after a year of open development on Early Access. It was a roller-coaster of fun and horror, as these things tend to be! In the end, everything went much better than expected, a lot of which is thanks to the enthusiastic and warm reception of the game. You guys are the best!

That said, not all the features we planned made it to Interplanetary. As most developers nowadays, we didn't simply throw the game out there and were done with it, but had great plans of supporting Interplanetary by fixing things, adding things, balancing things... Maybe even a bit too great, it turned out.

Some bumps on road to release caused a lot of trouble with our subsequent support of the game. Shortly, we discovered some difficult online networking problems affecting some of the players around the launch time. You can read more about it in our July status update. We had to push back the bigger, funner features on the list and concentrate fully on critical fixes. We even put on hold some of our regular events, such as Whack-a-Dev's, until it was certain that no player would lose progress over a networking hitch. But, as it turned out, fixing the networking problem would require diving deep into the roots of the game, re-writing the code extensively; and the schedule was tight.

With all the patches and trouble, we blew through the time we wished to spend on more interesting things. Eventually, most of the team needed to move on to different work-for-hire-projects, thus, having to leave Interplanetary support to the background, which was quite disappointing for all of us.

Now, although we're heavily occupied by other work and can't give you any sort of sensible timeline yet, we are looking forward to continuing to support Interplanetary once we are able. We do eavesdrop on the community all the time and are very grateful to the players, who are still sending us excellent feedback!

tl;dr
Things didn't always go as planned and we ran out of time. Now we're really busy with other work. We want to update Interplanetary, but don't know when it's possible. Hopefully soon!


Of course, it wasn't all pain and disappointment. After all, Interplanetary was our first significant project and, as tough as it was at times, it let us learn a great deal of things. Not to mention the confidence we found in the friendly reactions from the critics (even got to appear in printed press!) and eager participation of the community - great morale booster!

Interplanetary in print. Next to Farming Simulator 15, no less!


Speaking of morale boosters, even though enthusiastic players are the best prize any game developer could ever ask for, getting an actual award also feels pretty great. And that's how it felt to win Nordic Game Indie Sensation Award last May in Malmö, Sweden! Unexpected and absolutely overwhelming, such recognition from peers, only days after the release gave us the strength to go on and the public attention to get Interplanetary noticed by new audiences.

The conference was fun and we got a hefty souvenir to take home, too.

Aside from the Nordic Game Conference, we got to tour inside Finland and all across Europe, showing off Interplanetary and meeting some of you guys! Among the events we got to attend in 2015 are:  Paris Game Connection, Slush in Helsinki and Unite Europe in Amsterdam. Pretty out there, huh?

 To round up:

Patches released: 6
Events attended: 11
Coffee packs consumed: Countless.


Yeah, quite a busy year! It's been mostly behind the scenes, out of the public eye, working on secret projects and such. Makes for a kind of a boring retrospective when we can't talk much about the things we're been working on, but we hope we've been nicely transparent and answered some questions.

Thank You For Your Patience!

And now it's time for us to take a little Christmas break. We'll be back in business early next year. Enjoy your respective holidays, everyone! Take it easy, play lots of games and we'll see you again soon!

May the Blast be with you!

September 30, 2015

Inside Interplanetary: Behind the Sound



My name’s Jack Powell and I am the sound designer for Interplanetary. My role was to create all the sound effects that you hear in-game. In this brief write up I will be dissecting a few sound effects from the game, specifically the main menu ambience and the building sounds for the nuclear plant and water mine. So grab your scalpel and let’s begin.


Main Menu Ambience

The main menu ambient loop sits discreetly in the background and lets the theme music take the forefront.

The loop has 2 layers. The first layer is a processed version of a recording NASA's Voyager made of interstellar plasma sounds! Science! (NASA has made a bunch of fascinating copyright free audio recordings available on their Soundcloud for people to listen and download, I highly recommend you check them out.)



I pitched the sound down and set up a prefade send to a dark chamber reverb to add depth. It felt a bit static so to add some dynamics I automated the reverb send level so it builds and fades away in places.



The second layer is a low rumble sound I made for the planets, which is a recording of my old bathroom extractor fan pitched down and filtered.




Nuclear Plant

When you place a building it should sound gratifying and have characteristics similar to the building type. For the nuclear power build sound I used layers of sounds associated with energy and concrete/brick construction.

It is made up of 4 layers. A recording I made of a refrigerator humming, the startup sound of a hard drive and some wood and brick impacts.



I processed the sounds using pitch shifting, reverbs, EQ and some light compression. The brick and wood impacts were pitched down to add more punch and represent the initial construction of the building. The fridge hum and HDD startup sounds quickly fade in after as if the power plant is powering up and becoming operational.


And all mixed together




Water Mine

As with the power plant, and a lot of the other building sounds, I used elements that would fit the building type. So, no surprises I used the sound of water, a heavy river flowing to be precise. I also added in a snippet of a construction site ambience where a worker is hammering. The final layer is a sound I made using Sonic Charge’s Synplant. I don’t remember how I got the end result but it sounds similar to a big turbine pulsating or spinning. Well in my head it does.



For these sounds I only used high pass filters on the construction and water sounds and boosted the mids of the synthetic layer.

I synced up the pulses with the hammer hits which gave it a mechanical feel, as if a big turbine was being powered.


That wraps it up. Thanks for reading and I hope that you found this interesting. If you have any questions shoot me an email and I’ll be happy to answer them.

 jack@audiojacked.co.uk / http://audiojacked.co.uk/ 

June 2, 2014

Interplanetary Update: Sounds and Shapes

Cities, now 100% more lively!
Update time! Today we bring you a couple of small, but interesting changes.

The most obvious update is the inclusion of actual graphics for cities and buildings. This changes the intel system quite a bit, since we've decided to let players see the structure graphics regardless of their intelligence points. They just won't be able to see any details, such as the exact type of the building or its condition. Targetable weapons should now be much more useful and we've done slight changes to their values to accommodate for that. Tell us what you think!

Another visible, or rather audible, change is new music. We've added a couple of extra pieces to increase variety. You can expect many more in future updates.

Interplanetary Version 0.3.4027_EAC_4

  • New graphics for cities, buildings and ruins
  • Different craters for different weapon impact points
  • Additional music for build phase and action phase
  • Targetable weapons damage reduced
  • Shield Defense doesn't block missiles anymore
  • Sound effect fixes
  • Networking host migration fixes

Sure, you could fire blindly, but that little dot there may well be a kinetic defense.
That's all the changes for this week. We had to skip Whack-a-Dev last week due to scheduling problems, but we'd still appreciate it if you tried out the new changes and gave us some feedback!

Interplanetary is now available on Steam Early Access!

April 15, 2014

Interplanetary Arrives to Steam Early Access This Friday!


Surprise! It's finally time to move to the next level: the Steam Early Access version of Interplanetary will be released April 18th, which is this Friday!

We decided that going Early Access was a natural continuation of Interplanetary's journey, as we've already had close collaboration with its players during development. By continuing on to Steam, we'll be able to reach a much wider audience than ever before, which helps the development a huge amount.

Like usual, buying the Early Access version at a reduced price will also give you all the future updates until the game is finished and you'll be able to better influence the direction of the game through your feedback.

New Features

For the Early Access release, we've prepared an exciting new feature: Superweapons. These are unlockable through the Tech Tree and will wreak serious havoc with your enemy's planet.

This planet's going to have a bad time.
Currently, we've implemented two superweapons:

  • Asteroid Diversion
    • Diverts a group of asteroids towards the enemy planet, causing massive damage. Works similarly to the railgun, except that the starting point is the asteroid field at the edge of the planetary system and you'll be shooting a cluster of space boulders instead of one small shot.
  • Solar Laser
    • An accurate and powerful weapon, the Solar Laser is fired from it's own orbit close to the sun. Unlike with normal lasers, it can shoot to any direction, unless there are other celestial objects blocking its line of sight.

These weapons are pretty devastating, so make sure you get them before your opponent does!

In addition to superweapons, we've been doing a lot of smaller updates all across the board. Some of the major ones include the ability to have hotseat matches with up to 4 players and many graphical and UI-fixes. There are also plenty of balance adjustments, so make sure to weigh in with your opinions.

Time to get hyped!

Hop onto www.interplanetarygame.com and join our mailing list for timely updates.

February 26, 2014

Inside Interplanetary: Releasing a Public Alpha


Netcode! What have you done to my planet!?
Good evening, friends! Game Design Sasu, here! We're gearing up for a new alpha update, at the moment. It's looking quite nice, but there are still many interesting bugs to weed out. In addition to that, there seem to be multiple kinds of flu hanging around the TJR ecosystem. We're falling one by one!

In the meantime, I thought I could write something helpful for fellow indie devs. I already talked about this before on our IndieDB forums, but it was deemed useful enough to dedicate a blog post to it.

Today I'm going to talk about our experiences with giving out test versions of Interplanetary.

Preparation

There really is no substitute for a proper user testing. Everyone will eventually grow blind to the problems with their game, so fresh people are needed to give some perspective. We had had a couple of small testing sessions with our friends and relatives, but we needed more and variable data. Reaching out to gamers of the Internet was the answer.

Before sending out your alpha to the masses, consider why you want to do that. Do you need testers, publicity or just people to play your game with you? Our main priority was to get useful feedback, so we took that into account when building the testable version.

We had to make sure to give the testers the features we wanted them to test. The targeting system especially was something we wanted to get a lot of feedback on. This also meant that some of the more irrelevant features would need to be polished not to drag too much attention to them, or simply left out altogether. We didn't want people to just comment: "the planet graphics suck" and leave. When giving feedback, it's easy to grab into the most obvious thing and ignore the others.

Seriously, try to iron out the distractions.
To gather the feedback, we created a survey with SurveyMonkey and put a link to it in-game. Looking back on it, we should've also given the link to each tester when contacting them for the first time - surprisingly many missed the in-game survey link and later asked how to provide feedback.

When creating a survey, it's important to think of the right questions to ask; most people won't bother writing out their life stories. You need to make the survey very easy and to the point. Try to add some very specific questions to steer the testers to concentrate on things you need comments on. The current version of our survey works well enough. People have a chance to comment on many different things, but they aren't forced to fill out every space to submit.

This system worked well until we reached over 100 answers. The free version won't show more than that, so we needed to pay a fee to access the rest.

Distribution

How to actually go about distributing the alpha version to the testers depends on many things. Interplanetary's first alpha version was a very incomplete game, filled with all kinds of issues. To say that we were hesitant putting it out there would be putting it mildly. Ease of access is the key of getting people to test a game which doesn't have an established reputation, but we still decided against simply sharing download links or using the Unity Web Player (doesn't really work out in Interplanetary's case anyway.)

This is when the idea of alpha keys came along. We would announce the alpha testing and ask hopeful testers to contact us to receive a code they can use at our website for a download link. This way there was less room for misconceptions, as we could explain to each individual tester the situation with the game. No one would just stumble across it, thinking it was the final product. We could also draw out the more serious testers; even if the process of obtaining the code is rather painless it's still a step that gets us into contact with the people most interested in the game.

For convenience, we mostly used our Twitter and Facebook to share the codes. We could then use these networks to easily communicate with the testers afterwards.

We also made code cards for live events. Spent some fun nights sticking codes on them.
The whole "system" worked manually: a person would contact us, ask for a code and we would give it to them along with instructions. An automatic system of some kind might have saved a lot of time, but I personally prefer direct contact, so it's easier to answer to questions and such. There was a period when I really wished we had a robot for this, though: the day we were noticed by RockPaperShotgun was absolutely insane! I had to spend days answering all the code requests we were getting.

Once Interplanetary landed to Steam Greenlight, we changed the system a little bit. Partially for the convenience for the users and partially for my sanity, we decided to build a special Greenlight Alpha with a direct link to it on the page. This version was less experimental than the earlier ones and the aim was to make it also work as a sort of a very early demo; a tight package with the main features polished well enough. Being in Greenlight, people would also more easily understand that it's an incomplete version. A playable version, along with screenshots, videos and description, worked well to give people a full idea on what the game was to be and also show that Interplanetary is not a mere concept. Never underestimate the power of screenshots and videos, though: no one would have bothered to download the alpha, even if it's completely free, if we hadn't given them a peek to get them interested first.

A certain website even took the Greenlight Alpha without asking and ported it for Wondows.
As of today, the PC version has been downloaded from the Greenlight page 3,513 times and the Mac version 225 times. We received 34,251 "Yes"-votes during the campaign, so not nearly everyone found their way to the download link, which is probably partially because we couldn't place the link in the main description by the way Greenlight works. We had to make a separate news announcement on the page, but they are not particularly eye catching. We should've pointed this out in the main description.

For the Greenlight Alpha, we opted to use Mediafire to host the game files. Considering the popularity of Interplanetary's Greenlight campaign, this was a good decision: having to pay about 20 cents a download on our server, would've cost us a lot. The only drawback here was that the URL pointed to Mediafire, which isn't quite as "cool" as hosting the files on your very own space. We paid for the service, however, so the link was direct and there was minimum hassle for the players.

External file hosting sometimes makes you evil.
We were and are still giving out alpha codes to people, since the Greenlight Alpha was the only version distributed by a direct link. The latter updates would require a code. This seemed to work quite well and caused relatively little confusion.

Conclusion

I can really recommend using an alpha code system for everyone. We've received tons of good comments and followers because of it. Semi-regularly updating the alpha version also gives you nice mile stones for development. It can sometimes be quite a chore to handle the code requests, but typically the flow is steady enough to manage. We still get a couple of  inquiries every day, but whenever there's media coverage or something else, the amount skyrockets.

Starting to run out of codes real soon, actually, so give us a holler and we'll get you yours! There's at least one more alpha update on the horizon, so expect that!

December 9, 2013

Inside Interplanetary: How to Greenlight?


As you may have noticed, Interplanetary is now on Steam Greenlight! It's doing pretty well too: as of this writing, we have 7,375 "Yes"-votes. Our goal of 10,000 is getting ever closer!

Today I thought I might give a little runthrough of our Greenlight process, so any other hopefuls may benefit from it. So, let's get started with...

Interplanetary's Greenlight Process

We unveiled our Greenlight page on December 2nd, but we've been building the page for a long time before that. The first thing we needed to do, was to pay Valve $100 to get access to the page. This payment mostly exists to stop trolls from sending in garbage. After we gained access, we needed a couple of things:

  • An icon
  • A video
  • At least 4 screenshots
  • A description

Mostly quite straightforward. Our artist whipped up a beautiful animated gif as an icon for the game. This icon shows up when people search for games on Greenlight, so it needs to be eye-catching. We ended up animating a planet under attack with the game's logo on top. It communicates the idea of the game pretty well and is flashy enough to get people interested.

The trickiest part was the video. We decided to produce a new trailer and a simple gameplay video to accompany it. The trailer is the first thing that plays when people open the Greenlight page, so it needs to be attention grabbing, interesting and explain the game fairly well. Our earlier trailer was very fast paced and full of information, but this time we decided to slow the pace down a little bit, so that a new viewer might have easier time digesting it. A slower pace also gives a more realistic image of the actual game.

The trailer tells a little story using gameplay footage. A couple of turns of gameplay, two planets warring with different strategies, "filmed" cinematically. Combined with fitting music, it seems to be a success; people seemingly get the idea right away.

We also wanted to make an in depth gameplay video for those who want more details. We simply filmed a match between team members and narrated it, explaining game mechanics and strategies. The video ended up being over 50 minutes long, but it was never meant to be watched all the way through, necessarily. Curious people may skip through the video to get a feel for the game. Some have been interested enough to actually watch the whole match.

We also wanted to actually give people something to play, so we released a version of Interplanetary alpha on our Greenlight page. No codes needed this time. This added a lot of value to the page, since people can immediately get their hands on the game and discuss its features and arrange online matches right there on the discussion page.

Publish!

When all the content was collected for the page, we published it. We had heard that there would be an approval process afterwards, and it would take some time before the page would go public - wrong! It was up immediately! Now we had to hurry to get the word out and to handle the initial flow of people. Comments started dropping in, and luckily, they were all pretty positive!



At this point, we got access to some very interesting statistics on the page. All the important stats were available: the amount of visitors, favorites, followers, votes. In addition to that, we could compare our process with the average stats of successful Greenlight projects. A very useful meter is a percentual value that shows how far are we from the top 100. At the moment, we've gone 90% of the way! We could also determine that approved games need about 10,000 votes. Unexpectedly, we're already quite close!

The mere existence of a Greenlight-page does draw a nice amount of visitors, but we wouldn't have been as successful if we hadn't had any kind of community around the game already. After the first week, Interplanetary has disappeared from the first page of Steam Greenlight. The flow of people will obviously slow down a little bit, but luckily we've managed to get some gaming press interested. Now we'll just concentrate on working on the game and spreading awareness. It's not over yet!

Big thanks to everyone who has voted for Interplanetary! If you have any questions about the details of the Greenlight process, ask away! We'd be happy to answer!

Check out our Greenlight-page here!

December 2, 2013

Greenlight for Interplanetary! (Also New Trailer)

With a new trailer, Interplanetary has now been submitted to Steam Greenlight!

If you would like to see the game on Steam, go give us a vote! We would truly appreciate it.

On our Greenlight-page, there is an open link to a playable Greenlight alpha version. No codes necessary this time! This is kind of an evaluation version for people who want to give Interplanetary a try. Testers with alpha keys may still get updates to the alpha as they come, but the open version stays as it is.

November 27, 2013

Creative process and GUI design #2

Hello again!


Tarita here, the artist who has been tasked with the challenge of creating a passable looking UI for Interplanetary.

So, last time we were left with a combination of UI styles, right? I promised I would show you where the UI is currently heading, so here's a mockup:



Please keep in mind that the look of individual elements is far from being set in stone, and that the image above is just a mockup and does not accurately represent what the in-game UI currently looks like. We have just begun alpha testing, and in the light of the new feedback we may have to adjust some things.
The mockup should, however, give you an idea of what kind of style I'm aiming for.

Overall, the style is pretty simplified, and I like having some empty space between stuff. Even when adding detail, I'm trying to keep things simple and stay consistent with the limited amount of colours and light effects. I prefer not to add any extra fluff that doesn't have a distinct function or a reason to be there.

The elements in the mockup are somewhat large. This is partially because they have to work with a variety of different screen sizes, and still stay readable. I think that the increased size complements the simplified style nicely, but some people have told me that it makes the UI look "cute", which may or may not be problematic.

Earlier I told myself that the boxes would be neither blue nor gray, but in the end I had to go with gray.
Why? Because I found that only gray was neutral enough for the rest of the game.
I wish to leave the main stage for the planets and the space background, so the UI can't be too colourful or pop out too much. I don't want the player to miss the subtle details of the starfields on the background just because I insisted on having screaming, bright- yellow boxes on top of everything. This is, incidentally, also one of the reasons why I favour transparency and lack of boxes whenever I can.

Sometimes things pop out too much.

The other reason for the gray main colour is that I'd like to introduce some colour-coded information to the UI, such as icons and text, which are more visible on a muted background. Having a few splashes of colour is a breath of fresh air that also makes the dark graphics of Interplanetary feel slightly less grim and murky.


That's all for today, thank you for reading! In the future I may write more about the individual elements and the design choices and concerns behind them.

You can follow the progress on Interplanetary on Facebook, twitter or the game website.

November 14, 2013

Interplanetary Alpha


Hello, everyone! As you may have noticed, we've had some big things happening recently. We released a new alpha gameplay trailer, have been handing out alpha test codes to willing participants and even got featured on Rock, Paper, Shotgun! Feels good, man.

Today, we'll be going into more detail about the alpha (which you can get here, once you've pinged us about a code.)

Interplanetary Alpha Features

So, what is actually included in the Windows alpha version? Well, the very basic gameplay is there, but being an alpha version, even that's not shaped to perfection yet. It is possible to finish a match and even have a bit of fun doing it! The proper feature list is:

  • Hotseat and LAN multiplayer
    • Hotseat is currently restricted to two players, while LAN allows for more. Because the feature is not finished however, the game ends if the host loses.
  • Structure building
    • You can purchase and set some basic structures on your planet, forming Power Grids. It is also possible to repair, sell and reconnect buildings to the Power Grid.
  • Power Grid
    • You can connect structures together, so that they're linked to a Power Plant that keeps them online.
  • Cities
    • The function of Cities is greatly simplified in this version: they act as your planet's health, their population grows, they generate Material and Energy and act as connection points for your Power Grids.
  • Resource Management
    • It is possible to gather Material and Energy, using Mines and Power Plants.
  • Defenses
    • Forcefield and Kinetic Defense can be built to defend your planet, for the cost of Energy.
  • Firing weapons
    • Basic versions of railgun, missile and laser are usable. In the current build, the missile doesn't always hit where it's supposed to.
These are the features you can test. We really welcome all kinds of comments, whether you think something would work better differently or that some features are unbalanced. It's very easy to change the basic values, such as weapon damage and planet speeds, but bigger changes take more time.


A big thing we want to get comments on is the targeting and firing of weapons. Is it fun? Does it work? All the values of the planetary system, from gravities to planet sizes, are easily fixable, so don't hesitate to give your thoughts! 

What's to come?

We are planning on updating the alpha version periodically, so people can also test newer features. This will go on until we reach what we determine to be the beta-stage.

Some features to be expected sooner or later:
  • Single player against AI
  • Intelligence mode
    • Adds some fog of war-like features
  • Technology progression
    • A tech tree allows players to choose their strategy better and unlock new buildings and bonuses
  • Expanded City functionality
    • The players will be able to allocate the population to work on Projects that give certain bonuses
  • More features!
Happy testing everyone! Send us comments and we'll take your experiences into account when planning the next build!

October 21, 2013

What's up, Interplanetary?


The game is actually starting to look kind of nice! After all the recent devblog posts, we thought it would be nice to get back to the basics for a moment and give a little update on how we are doing with Interplanetary and internal Team Jolly Roger stuff.

Interplanetary is prettier and more functional!

It's true, a big part of why I wanted to write a quick status update is to showcase some of the new graphics! We've been busy implementing a graphical beauty that we won't be ashamed to show around. Of course, this is still not final, but it's a nice improvement to what we've had in the past.

We've come a long way...
...and we're still not done!
We're currently working on creating something nice looking and playable for o
ur upcoming visit to DigiExpo in Helsinki. Something big is brewing and we'd like to have a nice slice of the game to show to people there, and maybe even let them try it hands-on.

As for the gameplay, we basically have all the basic features of the game present, one way or the other. For showcasing the game, we're concentrating on getting the targeting phase work properly and feel good. It is, after all, a major draw of the game. The other main feature that we aim to polish, is the building of structures and maintaining them. These two features by themselves already make a kind of a nice little game, but there's a lot more in store for the next version.

TJR is a company, for reals!

This is quite huge for us: we managed to break free from the grasp of our university and form an independent company, officially known as TJR Games! We're still the good old Team Jolly Roger, just a bit more official.

Starting a company wasn't a simple thing to do, and preparing for it has slowed down the game development considerably at times. There was a period, when we didn't actually have a work space to do our game development and the team was separated to work in their homes. This rarely works.

Was going to add a picture of the office, but who cares? The game looks nice.
Luckily, we found an office space for a manageable price and filled it with computers and other stuff needed for game making. For a new indie company, this wasn't exactly cheap overall, but at least the situation is more stable now and work can resume in normal pace. Or, extranormal, since we're in a full-on crunch mode! Busy, busy.

Hungry for more screens? Check out our stash of pics, from the oldest of versions to the new shiny ones.

September 23, 2013

Code of Interplanetary: Can I see some ID, please?


Hello there, dear reader. I'm Riku, you might remember me from that more technical post I wrote about making a GUI with Unity. In addition to blogging about our Unity woes, my task has been programming network functionality for Interplanetary.

The game uses a client-server model, where each game client records what the player on that client does during their turn. When the player ends their turn, the client sends all that information to a server for processing. When the server gets this data from all the players, it combines all the player actions together and then plays out the turn, figuring out the outcome. The clients then get back the results for the turn and display some pretty pretty particles flying around to show their player what happened and who shot who.

From the outset I decided that to implement this, I would give everything a unique ID that would be used by different clients and the server to make sure they are all talking about the same thing when communicating. For instance, whenever a building takes damage, the server takes note of the ID of the building, and then tells every client that building number 5 just took a hit. This way, to keep every client in sync so they are all on the same page, I'd just need to make sure they all use same IDs for each object. This sounded very simple at first, but ended up being a little bit tricky in practice.

Let's examine how a building gets assigned its ID. When a building is being built, it should be assigned an ID right away so it can be found again if it needs to be operated on later on. However, the game clients can not be the ones generating the IDs. Each ID needs to be globally unique, and the clients can really only generate IDs that are locally unique to only that one client. They could end up generating same IDs that some other client is also generating for themselves, at which point there would exists two buildings with the same ID. Let's illustrate this with an example. Imagine that ID is an integer, and generating an ID means using an integer one higher than the previous one used. The first building built would have ID 1, the second one 2 and so on and so forth.


Since clients do not have knowledge about each other, they would end up generating same IDs as everyone else. Then, when the information about these built buildings is sent to the server and combined together, the game world would have multiple buildings with, say, ID 2, and there would be no way to know which building ID 2 would refer to. Any time the server would send the clients a message about building 2 taking damage, the clients could not possibly know for sure which building had actually taken damage. This is why all the IDs need to be generated on the same machine, so there won't be duplicates.

The natural option to use here is to generate all the IDs on the server. However, building the buildings happens on the clients' end. It would be possible to ask the server for an ID every time a building is built, but that would create a waiting period whenever a player would build a building and the client waited for the server's response over a network. It was decided that all network traffic would be centralized at the ends of turns, and communicating with the server during a turn would be avoided whenever possible. Because of this, buildings get their ID assigned to them at the end of the turn during which they are built. When the server notices that a player built a building during their turn, it generates and assigns an ID to it. When other clients receive the information that a building has been built, they get the ID for the building in the same package, along with other data like the position and type of the building.

There is one issue left to solve, however. The ID for the building needs to be delivered to the client who built the building, as well. It does not sound complicated at all, but it has some practical implications. For the other clients, the ID was delivered together with the information on how to build the building. They can, therefore, assign the ID to the building as they build it. The one client who already has the building only gets the ID. When it receives the ID from the server, it needs to know which building to assign it to. Normally, whenever the server sends a client instructions about operating on a building, it refers to the building with its ID. However, at this point in time, the building does not have an ID yet! A solution to this is to use temporary local IDs. When a client builds a building, it does still assign a locally unique ID to it. It is not going to be unique across all clients, but it does not need to, as it is only going to be used temporarily until the global ID assigned by the server arrives to the client. The local ID is sent to the server alongside other information about the built building, basically telling the server: "Yo, I just built a building with local ID 5". The server then assigns a globally unique ID to the building and tells the client: "Your building 5 now has ID 7", at which point the client switches the building's ID from 5 to 7. At the same time, other clients just get information about building 7 being built, being blissfully unaware of 5 having been involved with the building at all.

So far things have been relatively straightforward, and were easy to anticipate and prepare for when I was implementing this system. However, there is one complication left to solve, and I admit overlooked it and did not see it coming before I was at the point where it made things not work. Let's look at what might happen when a client builds some buildings.





There are two buildings built on previous turns and the two clients in the game are synced up to that point. Then they both start building buildings and assign local IDs to them, beginning from 3. One client builds one building, with local ID 3. The other one builds two buildings, with local IDs 3 and 4. The server then gets information about this and assigns globally unique IDs to all the buildings.




The global IDs assigned start from 3 and go up to 5. Now, let's look at the second client receiving instructions to replace its local IDs with the newly assigned global ones. It finds the building with ID 3 and switches that building's ID to 4. It then goes to find the building with ID 4, to replace that building's ID with 5. The problem here is that now there are two buildings with ID 4, because of the previous building 3 that was just updated to have ID 4.



The solution I used for this was to fetch a building that needed its ID updated, store its upcoming global ID with it without actually yet updating the ID, and then repeating this process for each building in a need of an ID update. Then I go through all those buildings again, assigning each the ID that was stored with them. In the above example this amounts to finding the building with ID 3, and telling it "your ID is going to be 4, but not yet", then finding the building with ID 4 and telling it it would have its ID updated to 5, and then telling both the buildings to now switch their current ID to whatever ID they were told to switch into.

That is the essence of how things get their identifications in our game so every computer involved can talk about the world state with each other and are able to keep in sync when it comes to the state of the objects. For different objects than buildings the process of assigning the ID is a little different, but that’s something for another blog post. Stay tuned, and maybe I’ll get assigned to talk about those other things in the next episode!

September 16, 2013

Inside Interplanetary: Targeting Problems

One of these must hit!
Hello. I'm Sasu and I like to write blogs.

Everyone's been very busy lately. We're working hard to get everything essential working without a hitch, but hitches keep coming along. Well, that's the reality of game development and there's not much you can do about that. Except maybe try to design things in a more detailed way.

So, today, let's try something a bit different. Instead of me just telling you about a game mechanic, I'll explain some problems we've come across in testing and some solutions we've formed up.

Let's discuss...

The Difficulty of Hitting Your Enemy

Well, I guess one did.
While testing Interplanetary, we've repeatedly come across a tiny problem with the Targeting System: it's darn difficult to hit your opponent! There are many things that play a part in this.

The planetary system is alive. Once you've set the trajectory and fired your cannon, time unfreezes and the planets start orbiting. It can be very difficult to foresee the movements of this slightly chaotic system. The biggest problem here is that the planets have a large influence on their surroundings, thanks to their...

Strong gravitational fields. Now, this is something that's almost impossible to predict for a mere human. Sure, you can account for a planet moving in front of your firing line, but can you calculate how exactly it affects your firing trajectory with its gravitational pull? We can't.

The planets are quite tiny. Small things are more difficult to hit than big things. Who knew?

When shooting a single railgun slug at your enemy planet, the odds of hitting it are very small, even if it happens to be right next to you. Building 15 railguns and firing them all makes it a bit easier, but managing to maintain such an artillery would be very difficult and time consuming in the final game, not to mention the bother of targeting each and every one of them every time. Something needs to change, but what?

We Have Some Ideas

A planetary prediction system would make it much easier see the future positions of planets. We have plans for a system that shows the player the "shadows" of the planets' upcoming positions, depending on the current trajectory drawn. The future trajectory of the railgun slug, affected by the position of the planets, would also be shown as a shadow.

Looks a bit complicated on paper.

The obvious problem with this solution would be that it takes away the element of predicting planet positions and may make the game way too easy to play. Of course, there would be extensive balancing done to accommodate for this feature.

Lowering the effect of gravitation would be an easier way to tackle the problem, but doing so would also make the game less interesting. In the earlier builds, you only really needed to worry about the gravity of the sun. Other planets' pull was much weaker, so it was possible to actually pull off very accurate attacks. This did take away some of the fun, since crazy, unexpected trajectories didn't happen.

We could just make the planets bigger. This might be the easiest solution and the least problematic for now. The biggest foreseeable problem with it is the change to the visual style. We're trying to keep a "realistic" feel to the game and to sort of keep it grounded. Bigger planets might give the planetary system a caricatured feel. Or, maybe we should give the planetary system more of a "war room"-feel. It doesn't look particularly realistic as it is, so maybe adding more elements to make it look more like a tactical representation of the real thing, would be a good idea.

Now, we simply pick one idea, implement it and test. Or maybe we should use them all? Or something completely different? What do you think?