My next project: Above Earth

As I finish up the development of Icarus SCS I couldn’t help myself but think about my next project. All that remains for me to accomplish what I set out to with Icarus SCS is to finish some basic writing and playtesting. I already have it mostly integrated with the Steamworks API as well – so I just have to decide on which Steam achievements and stats to track.

I had so many ideas for my next project(many good and many bad ones I’m sure). Unfortunately, when it comes to a one person dev team, you can really only spend so much time fantasizing before you have to pick something(for time and space and physics reasons). Otherwise, in my case, I would probably just think about potential projects forever.

I found myself playing around a lot in Unreal Engine 4 and I have developed an affinity for it. The cohesiveness of the engine is something that with current technology only seems to happen over the course of thousands of man hours of some of the best software developers in the world thinking and working on something(as well as years of feedback and testing). I’m very happy to be able to use it to make something and I hope that people will enjoy the final product.

Above Earth will be a survival game set aboard a space station in the near future. Development is in progress in Unreal Engine 4. Screenshots and more info to follow.

It Got Through Greenlight

Icarus SCS got through the Greenlight process a couple months ago. I appreciate the votes from you guys and I will do my best to get it up on Steam as soon as possible. Until then I will be focusing on feedback from the beta testers.

Greenlight page: Steam Greenlight Page

I also created a new splash screen for my DBA name. Let me know what you think:

The Alpha Is Done

The alpha is done. If all goes as planned, today I will be meeting some professional game devs who were kind enough to be willing to playtest the game.

I also plan to take it to some game dev meet-ups and if possible some small indie conventions to have people give their feedback.

The feedback I get from these various sources will determine how much more time I invest in polishing the game and what additional features I end up adding. It will also determine how I end up beta-testing and ultimately releasing the game.

 
Thanks for following and I hope you enjoy the Alpha Trailer for Icarus Starship Command Simulator:

Music and Sound Effects

It’s been a long road, but I now have all the music and sound effects done for the alpha and nearly the final release.

The music consists of about 17 full songs plus a bunch of smaller musical phrases. They were produced by me using my VST of choice.

They are in the game, they are playing when they are supposed to and I am generally happy with how they have turned out.

Each species has its own song with a few different versions for different scenarios.

Here is the battle music for the alien “space lizards”:

Here is the battle music for another species of “alien cyborgs”:

The in-game versions of these songs are much more ambient and much less structured, but I cleaned these versions up a bit for the purposes of posting them online.

In addition to all the species’ songs. I also have a few miscellaneous songs for the beginning/ending of the game, as well as the main menu screen and some other things.

As for the sound effects, they were for a plethora of things ranging from species’ voices to ship-to-ship weapons.

Here is the voice of one of the species – a robotic type:

This is played when these robots first see the player.

The lions share of the art for the game is now done. My main focus now is on balancing gameplay – which will consist mainly of editing text files and some programming.

In fact, I am getting almost to the point where I could have a very limited closed alpha – which is something I am looking forward to.

I hope you find the music enjoyable. Thanks for listening.

A Whole Bunch of Stuff

I keep saying to myself “I’ll just do this one more thing and then I’ll make a devlog post”. But that “one more thing” turns into two more things and then three more things and then ten and then 20.

But I finally did that last thing (it was particle effects btw). A lot has happened since last year.

 
I finished ship floor plans and interiors:Floorplans1

 

I optimized the game:

Performance

 

I added a leveling system for ship crews. They now level up when they get kills. I also added a reserve crew mechanic:

CrewLevelsAndReserveCrew1

 

I did particle effects for ship destruction and FTL jumps:

ParticleEffects1ParticleEffects2

 

I got started on some text dialogues:

TextDialogue1

 

And of course I fixed a bunch of bugs:

Bugs1

 

My TODO list is getting pretty small now.

I’ll try to get another dev blog update out soon. Thanks for readin’.

 

P.S.
I’ve had the main menu done for a while but here is a shot of that as well(keep in mind the game will probably never have multiplayer):

MainMenu1

Exterior Starship Modelling

I present to you the Icarus Starship Command Simulator fleet:

screenshot32

Each of the nine species in my game has at least four ships of varying sizes as well as a large spacestation.

screenshot34screenshot35screenshot38screenshot37screenshot39screenshot36screenshot42screenshot40

These are all the exterior ship models I will need to finish the bulk of the game. I will be adding more – but these are the ones that I consider necessary for the game to be complete enough for me to start showing off a playable version.

Thanks for reading. I’ll be back with another post once I finish the floor plans for all of these ships.

Sci-Fi Architecture and Some Other News

Hello Hello Hello, I’m back again. I’m going to make this a big update since I haven’t posted in a while. I’ve got an asset showcase for you.

First, a little backstory . . .

When creating alien art styles, I took a lot of inspiration from the species of Star Trek. Some of you might be able to see this if you look closely enough at each species in the game.

Each one has it’s own unique architecture and color scheme that I believe is reflective of the traits of that species (or at least it will be once I write the story for the game).

So with that in mind. Here are a series of images showing off the styles of each species:

artifician_groundbellumturan_groundcerebturan_groundhuman_groundinsecturan_groundmachinulan_groundmalnuran_groundmendacian_groundtransitorian_ground

Here are some alternate versions of modules just to add some variation within an alien architecture:artifician_wallbellumturan_wallcerebturan_wallhuman_wallinsecturan_wallmachinulan_wallmalnuran_wallmendacian_walltransitorian_wall

This artistic project was something I debated doing because it was a larger amount of time to spend on art than I originally wanted to. But I think in the end it was necessary because it helps the player to differentiate what kind of ship they are aboard and really helps to give them a reference point when they are moving between different ships.

I used a couple programs to help me do this faster.

I used Imagemagick to do batch image color conversions – so I could reuse some models but give them different color schemes. I created .bat files with ImageMagick console commands to convert hundreds of images to different color schemes relatively quickly:

@echo off
echo.
echo Converting Colors . . .

mogrify *.tga -fuzz 4000 -fill #714f4c -opaque #d9d9d9 *tga
mogrify *.tga -fuzz 4000 -fill #704600 -opaque #8f8f8f *tga
mogrify *.tga -fuzz 4000 -fill #242424 -opaque #242424 *tga
mogrify *.tga -fuzz 4000 -fill #9f4000 -opaque #31b5b4 *tga
mogrify *.tga -fuzz 4000 -fill #311e02 -opaque #6b6b6b *tga
mogrify *.tga -fuzz 4000 -fill #250000 -opaque #688282 *tga
mogrify *.tga -fuzz 4000 -fill #b27f09 -opaque #b2b2b2 *tga
mogrify *.tga -fuzz 4000 -fill #311e02 -opaque #474747 *tga

echo.
echo Done.
echo.
pause

For example to convert red to blue and green to cyan etc. etc.

I also created my own simple program to do color conversions on GUIs – which are all in a text format. I havn’t been able to look at the engine’s parser for these files so I just do simple find and replace. I could have used PowerShell to do these text substitutions but I have created find and replace programs in the past – so I preferred to do it in c++:

// find_and_replace.cpp : Defines the entry point for the console application.
#include "stdafx.h"
#include "dirent.h"

#include <sstream>
#include <fstream>
#include <iostream>
#include <vector>
//typedef std::vector <std::string> DirListing_t;
void GetDirListing( std::vector <std::string>& result, const std::string& dirpath ) {
	DIR* dir = opendir( dirpath.c_str() );
	if (dir) {
		struct dirent* entry;
		while ((entry = readdir( dir ))) {
			struct stat entryinfo;
			std::string entryname = entry->d_name;
			std::string entrypath = dirpath + "/" + entryname;
			if (!stat( entrypath.c_str(), &entryinfo )) {
				if (S_ISDIR( entryinfo.st_mode )) {
					if (entryname == "..") {
					} else if (entryname == "." ) {
						result.push_back( dirpath + "/" );
					} else {
						GetDirListing( result, entrypath );
					}
				} else {
					result.push_back( entrypath );
				}
			}
		}
		closedir( dir );
	}
}
void FindAndReplace(std::string& str, const std::string& oldStr, const std::string& newStr){
	size_t pos = 0;
	while((pos = str.find(oldStr, pos)) != std::string::npos){
		str.replace(pos, oldStr.length(), newStr);
		pos += newStr.length();
	}
}
class Substitution {	
 public:
	Substitution( std::string init_find, std::string init_replace );
	std::string find;
	std::string replace;
};
Substitution::Substitution( std::string init_find, std::string init_replace ) {
  find = init_find;
  replace = init_replace;
}
int main() {

	std::vector <Substitution> Substitutions;

	//Substitutions.push_back( Substitution("background","REPLACED1") );
	//Substitutions.push_back( Substitution("backcolor","REPLACED2") );
	//Substitutions.push_back( Substitution("transition","REPLACED3") );

Substitutions.push_back( Substitution("0,0.58,0.7,1","0.83,0.48,0.59,1") );
Substitutions.push_back( Substitution("0.1,0.1,0.1,1","0.2,0.1,0.15,1") );
Substitutions.push_back( Substitution("0,0.29,0.35,1","0.4,0.2,0.3,1") );
Substitutions.push_back( Substitution("0 0.58 0.7 1","0.83 0.48 0.59 1") );
Substitutions.push_back( Substitution("1 1 1 1","0.77 0.5 1 1") );
Substitutions.push_back( Substitution("0 0.58 0.7 0","0.83 0.48 0.59 0") );
Substitutions.push_back( Substitution("0.85,0.12,0.12,1","0.85,0.67,0.85,1") );
Substitutions.push_back( Substitution("0 0.58 0.7 .5","0.83 0.48 0.59 0.5") );

	std::vector <std::string> dirtree;
	GetDirListing( dirtree, "/test/testing" ); // this is C:\test - you can put the gui folder in here. - it should work.
	for ( unsigned int n = 0; n < dirtree.size(); n++){ // cycle through each file in the directory - including in any subdirectories
		if ( dirtree[ n ].find(".gui") != std::string::npos || dirtree[ n ].find(".pd") != std::string::npos ) { // specify file extensions to allow
			std::ifstream t(dirtree[ n ]); // read
			std::string str( (std::istreambuf_iterator<char>(t)), std::istreambuf_iterator<char>() ); // read
			for ( unsigned int i = 0; i < Substitutions.size(); i++ ) {
				FindAndReplace( str, Substitutions[i].find, Substitutions[i].replace );
			}
			std::ofstream output_file(dirtree[ n ]); // write
			output_file << str; // write
			std::cout << dirtree[ n ] << "\n";
		}
	}
	return 0;
}

Now that I’ve got a big enough library of models completed and textured, I’m going to start putting all these structures together to create starships. I will have to model the ships and come up with unique floorplans for each one. This is something I have been looking forward to for a long time. It will be challenging but I think it will be fun. I mean, who doesn’t like to build their own starships?

Thanks for stopping by. I’ll try to get another update out this month.

On An Unrelated Note – I Tried Oculus Rift DK2

Hello again. On a note unrelated to Icarus – I finally got an opportunity to try out an Oculus Rift Developer Kit 2; so I took a short break from my modeling schedule for Icarus to try it out. I’ve been drinking all the hype juice for the Oculus Rift and after trying it out I came to a few different conclusions:

1) It is reasonably cool already and it still has a huge amount of potential.

2) It is not going to replace traditional desktop gaming.

-Due to the motion sickness issue, you cannot play games like Quake or Call of Duty (or Icarus for that matter). In fact, using a VR headset, any game where your player character actually moves their origin point around is going to cause motion sickness in the majority of people. However, there are a huge amount of games that could be created where your player character remains stationary (other than the head motion tracking which is awesome by the way) – and the environment changes around you. This is where the head motion tracking really shows its strength. It allows you to move in the VR world realistically without any motion sickness. I listened to several interviews with Palmer Lucky ( founder of Oculus VR company ) and he is always talking about how games today are not designed for VR and they really need games to be specifically created for VR. I never really understood what he was talking about but I think this is mostly marketing speak for “most games nowadays would cause immense amounts of motion sickness if played using a Rift, we need people to create comfortable VR experiences for the Rift”.

3) The motion sickness issue is difficult to understand until you actually try it out – and it is really a testament to how realistic the experience is that it causes so much motion sickness so easily.

-You would think that because we play games all the time where our player character moves “hella fast” and twists and turns across a map (Team Fortress 2 for example) – that we would already be accustomed to this phenomenon by now – but a VR headset is an entirely different experience from traditional desktop gaming. With a VR headset, what peripheral vision you do have is part of the VR world – your mind is saying “I am moving” but your body is saying “I am stationary”. – whereas when you desktop game – your peripheral vision is just whatever room you are in and your mind can more easily know that you are stationary – so your mind is saying “I am controlling a camera on my screen” and your body is saying “while I am sitting in my chair”.

In any case, there are huge possibilities for gaming with the Rift – I can remember a number of times when the urge to reach out and touch a branch or a leaf while using the rift just felt so natural (I can definitely see how something like the Leap Motion Plus hand controller is a natural fit for any VR headset). And I can imagine a huge number of games that will be comfortable for everyone. I can imagine many games that are a lot like a movie that you are inside of. You can look around and witness plot events happen – and really feel like it is just over there, or behind you, or in front of you. Or you could be a detective sitting in a restaurant or an office and you can have story dialogues with NPC’s that come to visit you. These are real possibilities.

All this being said, it being the development kit there were a few hiccups (don’t get me wrong, the good experiences I did have made up for these in large part). Here is a list of the games I tried out ( in chronological order ) using the Rift and a short description of my experience with them:

OculusWorldDemo – This was a small experience that came with the SDK files. It was basically a crappily modeled Mediterranean cottage with a small yard and a vista created using some really pixelated skybox textures. This was the first thing I was able to get working and even with the low fidelity art assets it was really cool. However, after about two minutes of walking around my head started to feel a little woozy and I realized what people were talking about with the motion sickness. I did have my first “cool VR experience” with this demo though. There was a small balcony on the second story of the cottage and there was a tree with some branches – it really felt like you could just reach out and grab one of those branches – in fact when I first stood there I instinctively put my hand out for the leafy branch.

Mona Lisa Room – This was the second thing I tried – I couldn’t get it working. In fact any game that was made with Unreal Engine 4 I could not get to work on the headset (which is a shame because they probably look the best) – it would show up in stereoscopic vision on the desktop but it would not transmit the video to the headset. This is about when I decided to not troubleshoot anything and to just take a more “try it if it works” attitude towards downloading games off of Oculus Share.

Neos: The Universe – this was the third thing I tried and it was a truly mind boggling experience. The game basically narrates as the scale of the VR world grows from the size of a neutron to the size of the observable universe. Very cool experience, I would definitely recommend it. No motion sickness for me as your player character is stationary for the entire experience (you can do some really cool head tracking lookarounds for things like a coffee bean or a proton).

SightLine: The Chair – this was awesome. It was probably the best experience I had. Whenever you look away from something it changes. This game really showed me how beautiful small rooms will be in VR. I can see people one day putting on their headset to sit in their “VR Office”. In fact I would say small rooms are the coolest thing about VR because as you move your head the motion tracking lets you kind of look around an object – and that object really seems like it is there.

Pixel Ripped – I believe this was made with Unreal engine 4 – I could not get it to transmit video to the headset although it was playable on the desktop. Basically it is a “game within a game” kind of thing. I didn’t try it too much because I was trying to get another working game for the headset.

The Hum: Abductions – Proof of Concept – It was made with Unreal Engine 4 so I could not get it working and it forces you to sign up with an email and download their installer. I’ll try it again some other time to see if I can get it working. But I was on to other things.

Ocean Rift – this looked really cool but the problem was that you had to find events (sharks and whales) – they didn’t just come to you. And moving up and down underwater canyons looking for sea creatures can be extremely nauseating in VR. This experience would be great if they just had the fish swim by you in some artistic fashion while you were allowed to headtrack around them.

Welcome to Oculus – I couldn’t get it working. I don’t think it was Unreal Engine 4 but a note in the setup said “You will need a set of media codecs installed to view this experience. For more information, visit http://treyte.ch/codecs/” – This was more effort than I was interested in at the time especially since I had so many other downloaded games to try out.

Don’t let Go! – This is the one where you put your hands on the two Alt keys on your keyboard and try not to let go as a poorly animated Velociraptor and some creepy little (and big ) spiders crawl around your head. It was not difficult for me to hang on – but I could definitely see how more scary and realistic art assets could make me let go unconsciously. The room that you sat in was just a plain old office but it was really cool to look around it.

TNG Engineering – this was a walkabout of the engineering section of the Enterprise D. Very cool, Very well modeled – very cool sound effects – a Star Treks nerd’s dream come true. (no Geordi LaForge though – he might have been working on a coolant leak).

Titans of Space – this was the highest rated experience on Oculus Share. It was really cool. Basically it takes you on the tour of the solar system and some of the larger known stars. Very, Very cool. Caused me some significant motion sickness as it flew around the planets – even though it was rated “very comfortable” on the the share page. One big downside was that it was all text based. Reading text in the game seems to have some issues as there is no anti-aliasing on the text (at least I couldn’t figure out how to get any). So all the text looks very pixelated.

NewRetroArcade – I could see how this game could really show off the potential of the “game within a game” concept that I think VR will thrive on (as it mostly solves the motion sickness issue). However I could not get it to transmit video to the Rift headset. I think it was made with Unreal engine 4. Basically, you can play arcade games in a virtual arcade. I played it for a bit on the desktop but I was on to other things.

Café Âme – this was both the shortest, most limited experience as well as one of the most enlightening. Basically you are a robot sitting in a cafe of the future on a stormy night with a cup of coffee in front of you. As you look to your right there is rain spattering on a window – you can see your reflection and your glowing eyes. Your head motion tracking is linked to the robot model – so as you move your head the robot’s head moves in the window reflection. So it is a game asking the question “what would it be like to be a robot?”. Very cool – showing a huge amount of potential, also very short and limited.

Therapeutic Heights – Relaxation Experience – You are basically in a hot air balloon basket ( although it is more like a bedroom ). You float around over a landscape that looks like something out of Microsoft Flight Simulator 2002. Interesting, but I had some jitter with the head tracking that was causing me a little motion sickness. There was a lantern inside the bedroom attached to the ceiling and it was another time when I had the instinct to reach out and grab something in VR.

Kira – The art style reminded me a little of Trine. It was basically a “look there to go there game”. You moved around a little fantasy room by looking at nodes. It was getting late by this point and the game was causing me significant motion sickness. Very cool though once you got to stationary positions. I took on the strategy of looking at a node long enough to start moving to the next stationary position and then closing my eyes so I wouldn’t get any motion sickness. Very beautiful game all in all though.

Elevator Horror – this was a legitimately scary game. I won’t spoil anything but there are some really scary moments. Very cool little demo. No motion sickness.

INSURGENT: Shatter Reality – This was a promo thingy for the Movie INSURGENT (2015). I couldn’t get it to work even on the Desktop – but it looked really cool in the screenshots.

ViewPort VR Panoramic Experience – This was another “look there to go there game” – although it was by far the most highly detailed thing I have experienced in VR so far. It was basically an apartment that you could just move about. The texturing and lighting were hyper-realistic. Definitely gave me that “VR Office” feel again. Very cool, very short.

Surge – This was made with Unreal Engine 4. Like all other Unreal Engine 4 games, I couldn’t get the video signal to be sent to the Rift – although it looked cool on the desktop.

Convrge – a social world game. It was getting late so I didn’t try to troubleshoot it – but it did not work for me the few attempts that I tried it. I just tried it now on the desktop and It worked but no one was in it. Basically, it is a outdoor movie theater that you can watch Twitch and YouTube in with other people. Might be cool, I’ll try it again some time and see if anyone is in it.

So in conclusion, I believe traditional desktop gaming and VR gaming will probably live side by side – probably not eating up too much of each other’s markets (although they will of course eat some – but I have to say I think there is a strong possibility that VR will eat up more of the movie industry than the desktop gaming industry as I believe participatory stationary narratives or stories will be really popular in VR). I believe desktop gaming will continue for the foreseeable future, at least until VR headsets can produce resolutions high enough to accurately simulate desktop screens inside of the VR world – in which case it will probably eat up the LCD screen market significantly.

To be honest, my hype has gone away a little but the potential has all been confirmed to me. And I think I can say for sure now that I want my next game to be for the Oculus Rift and hopefully other VR headsets. I have some ideas for some artistic stationary experiences that I would like to try out.

Thanks for reading, hopefully this gave you an understanding of VR headset technology from the perspective of a newcomer – including both its future potential and its remaining challenges.

P.S. – For those interested in Icarus – I’ve been modeling away on Icarus. I am a little bit behind on schedule for my static models. I think it will be another 2-4 weeks more until I am done with the majority of the static models – I got a little sidetracked with the VR stuff – but here are some viewscreens for all the species and consoles for one of the species I did last week:

image1-061715

Captain Chairs Modeling

Hello again, I’ve got another quick update. I’ve completed all the captain’s chairs of the 9 alien species that will be in Icarus:

screenshot31image1-060115image2-060115image3-060115

I find I’m spending more time on models than I had originally planned. The positive aspect of spending more time on modeling is that they are looking really good – at least in my opinion.

I feel that I will make a decision soon about how to do the various other species’ models. I could just re-skin them or I could completely remodel them. How important is it to have all these various models in a one-man developer indie game? I don’t know right now but I’m starting to think that players will be forgiving of some reused models with unique textures. As long as the color scheme of each species is conveyed in the model – I think the point will get across. And I can always come back to them after I get a playable version out there.

Thanks for reading. I’ll be back with another post in a week or two.