Battle Among The Stars: Day 7

So, this time I guess I don’t have a fancy screenshot to show.

Most of the work on Day 7 was restructuring some more of the Blueprints I had already build (if you read the Day 6 post, you might see that this has become a common theme, which is due to me still learning the language & engine), as well as learning a bit more on how the unreal engine integrates c++, as I have found a few things that I’d like to do that don’t seem possible with Blueprint yet.

Also I seem to have a problem with the Engine not running the construct scripts of my ship-characters in “standalone” mode – while in editor and in a done build it works (so this is mostly just messing up testing for myself).

Besides that I’ve looked into how to do networking, for which I started building a networked pong (no, not going to release that) in the Unreal Engine, just to see how it works.

My next goal for this is to build an Asteroids-Level – basically the first playable release of something, so people who are interested can play (… asteroids), and give me feedback on how the controls work for them. (If you are interested, drop me a comment – it might still be a few weeks till that happens though).

 

not so fancy pong screenshot:

ppnetpong

So, what about Elite Dangerous?

December 2013 – Early Access / Alpha

I started playing with the first release that supported oculus rift – in fact the support for occulus was what got me to ignore common sense and buy the horrendously priced alpha access.

Just to learn that I had come a few days late, and while I paid as much as some quite highlevel backers, i wouldn’t get any of the benefits they where getting. Tough Luck.

However I hadn’t bought the game because of those benefits, I had bought it because I wanted some space game to go with my oculus rift – and, even though there where a few bugs in that first alpha, that only consisted of what today is the tutorial, I really enjoyed it.

Last Year – Alpha / Beta 

During Alpha and the Beta stages the game grew better and better – once there was a set of systems you could travel between it started feeling like the game I wanted it to be – I started having some awesome dog-fights with other players, and grinded through combat zones and navpoints to supply my pew pew habbits.

Last Year – Gamma / Release

When ED was released last year, I was rather disappointed. Shortly before the launch they had messed up the (reward) balancing, so a combat career didn’t seem feasible, and everyone was just playing “Eurotruck Simulator in Space” which I found rather boring.

You wanted to progress to one of the bigger ships? be prepared of hours of hauling goods.  Exploration, Combat, Resource Harvesting? All of them where do-able, but wouldn’t yield enough to get even to the mid-range ships in a reasonable amount of time.

I had spend most of the time in Alpha / Beta grinding to get to one of the bigger ships (and always come just a few hours of gametime short of it before the next wipe), so again being tied to fly Viper or Eagle (the affordable combat ships), or go space trucking, I decided not to play for a while, hoping for Frontier to actually fix the game and make it a “complete experience” – something ED at that time was not.

Today (Easter 2015)

So, what has changed?

Since the last time I’ve played there have been two free “updates” (1.1: Community Goals and 1.2: Wings), which added a hand full of new features to the game – the first adressing the huge outcry by some, after the launch, about the lack of content.

Community Goals are basically Events where players who get to the location, can join to the Event and then do missions (mostly the same stuff as regular missions), that contribute to the Goal of that event – and by that the players can influence the outcome.

Wings is basically adding “grouping” features as known of any other online game – you have a few friends, you want to fly together and have a shared chat channel, share bounties and sensor data? you can now create a Wing and do this.

You might already have guessed from my choice of words that I’m not totally overwhelmed of excitement about those updates. Well first of all – this is features that should have been in the game from the start, and people where telling ’em that, and second, I might still be a bit annoyed by this Interview where David Braben claims to have released a complete game – totally ignoring that those two updates as well as many features and things (complete ship lineup anyone?) spoken about where not in.

I could go on ranting about the rumours of them working on planetary interaction and walking in stations for the paid expansions now, but I’ll save my breath. Lets rather talk about the good things:

They “fixed” the combat reward balance (and I can’t find it in the Patch Notes).

The rewards for shooting pirates, combat bonds etc. it all feels at about the right amount right now. getting your eagle (the lowest tier of combat ship) from bought to fully-pimped is now rather a task for a day or two, and not several weeks anymore. You will still make credits on a slower rate than a trader in an Lakon 9, but at least it will no be completely ridiculous anymore.

Ok, Ok, there are more factors that improve combat gameplay:

A new ship in the combat lineup: The Vulture – priced at (now reachable) 4mio credits a big brother for the Eagle. This moves the gap between “payable ship” and “ridiculous overpriced ship” a bit further away from the new combat pilot, as he now has the option to go from viper (~300k), to vulture rather than the faction ships ( ~20m, + good standing with the faction) or the python (50m).

Also combat gameplay has improved by having the NPC follow a wing-logic too, which means you can now see a bit more on how many NPC will get angry with you and shoot at you if you go for their wing-buddy.

 

So basically those updates have made combat a playable path again, and by that it seems time to play again.

 

TL;DR:

Liked ED in Alpha/Beta, got bored with Euro-Truck-in-Space in Game/Release. Happy that last update made combat playable again, now playing again.

 

PS: I still think the game is incomplete, but FD is doing a good job with their progress on improving the game to the state where it will be complete, even if they don’t admit the incompleteness.

Battle Among The Stars, Day 6

Today I spend time on finally getting the turret rotation to work, and as it turned out I hadn’t really understood the problems that I faced during LD yet – I ended up having rotation wrong again. (It only worked last time i looked at the problem because I had my 2D playingfield in front of me instead of looking from the top at it.)

Now personally i think adding rotational turrets should be something rather easy, and I was a bit annoyed on how long it took me, but I think my excuses are good enough, after all I’m still spending most of the time I work on this figuring out how to use the Unreal Engine, and it shows that the Engine is build to build shooters, most tutorials focus on that, and creating a shooter level is probably easier than to build a game like this from scratch. I might have saved some time using one of the available game templates (two stick shooter), but I figure that would have limited the learning experience.

Anyways, I now have rotating turrets on my ship (it is actually implemented through a blueprint component, something new in UE 4.7), and that are working, and also I implemented a simple zoom in / zoom out control (in the old default distance it was hard to even see the the turrets, so I moved a bit closer (for now) and gave the option to use the mousewheel for zooming in/out. (Not sure how I should provide that for gamepad, probably you’ll need to hold a shift key for that).

Also, i replaced the static ship in the main menu with the same thats being used by the player – which allows for a small turret-rotation animation at the start of the menu.

After that I spend quite some time reorganizing the folders of my project to something a bit less of a mess.

Now, all in all I’m happy with how much I got done, also, at the end of the video there is one more thing I’ve been working on ;)

Also, last friday I showed the previous video to some friends of mine (who are working in game dev), an Martin pointed out something that I’m still thinking about. As you might have noticed, when the ship turns your movement vector won’t change at all, only if you apply thrust it will have effect on the vector. Martin said, that if I fire thrusters to the side, I could make it actually in more of a turning around movement. At that time I thought he meant that I should do the ships rotation by thrusters (which I’m avoiding on purpose at the moment, because that would mean rotation needs counter-thrust to stop, which might make the controls a bit too harsh). Apparently what he meant was, that when the ship goes into a curve, the lateral thrusters (which are not implemented yet, but will come for strafing) could fire, by that helping to change the vector faster.

He actually has a good point there, but I don’t want to automate this behaviour away. Once I’ve implemented it you will be able to manually fire those thrusters, mainly for strafing, but it will allow you to influence the vector as well. The thing is that as with the forward breaking thrusters, those are maneuvering thrusters, and by that they are a lot less powerfull than the main engines, which means that managing rotation and the main engine will still be a more efficient way to control the vector, while the lateral thrusters will be better suited to make small corrections.

This all will get more interesting once the fuel mechanics come into play as well.

Battle Among The Stars, Day 5

So, todays post is rather boring. I spend much more time than I wanted on figuring out how to get a camera which is moveable detached from the pawn controlled by the player.

I wasted a lot of time watching videos on how to use cameras and such, also spend quite some time reading up on answerhub, and in the end I realized, I don’t even need most of the stuff they where talking about (For example: someone suggested using 2 PlayerController instances, so two Pawns, one for the camera and one for the actual pawn can be possessed. Having two player controllers for each player just seemed plain wrong to me).

bats_day_5

So I had a closer look on what i actually need, and for now came up with a very simplistic variant to do camera movement. Probably I’ll iterate over it again once I’ve learned more about UE4 anyways. The good thing about all this is that I finally moved the controlls where they belong – to the PlayerController.

Also, if you ever end up using Unreal Engine 4, and you’ve set a PlayerController through Blueprint Icon on the top, but then end up with the packaged build (or stand alone game) not using that controller: Edit->Project Settings is where you have to set it so it is persistant, apparently the one through the icon is only for the current editor session.. not knowing this almost drove me crazy today.

Small video showing that the camera stuff is actually working:

 

Battle Among The Stars, Day 1 to Day 4

Basically this is a “what happened until now post” as kick-off for the battle among the stars devblog.

If you have me on facebook, you most likely will already have seen the screenshots from the first 4 days, so there won’t be much new in this post. In the future I plan to use this category of my Blog for my Dev-Diary.

 

Why am I doing this?

I didn’t blog about this, but last year in december i tried to take part in the Ludum Dare 31 – and I failed horribly, which is probably why i didn’t blog about it right away.

I failed because

  • i was hungover from the Xmas party of the company i work, which happened on the night before the Ludum Dare
  • I decided to go solo. Now that alone doesn’t make for a fail, as for the Ludum Dare 30 i wen’t solo too, but within such a short time frame this adds a lot of stress
  • I decided to use an engine, which I never used before: the Unreal Engine 4

Now even though I failed, I liked what I saw from the unreal engine during that time. So I decided to go ahead and build a game outside of a GameJam with it.

 

what is this game going to be like?

at this time I don’t want to go too much into detail, so I’ll just throw a few keywords out there:

Online, Multiplayer, 3D, top down, Spaceships, Shooting, Tactics, Resource Management, PvP.

what happend so far

Day 1 (February 1, 2015)

On day one I mostly spend my time learning a few more of the basics on how to work with UE4, as well as creating a first pretty rough frame for the game. At that time I hadn’t made a decision on using 3D graphics yet, I was spinning around the idea to use 2D graphics, but particles in 3d space for effects and such.

At the end of Day 1 I had a running application, which would display (and allow to move) a simple 2D ship actor.

bats_day_1

 

Day 2 (February 8, 2015)

On Day 2 I made two decisions:

  1. after trying out a few things the 2D + 3D effects thing turned out to be more trouble than fun, so its gone, I’m using proper 3D Models now
  2. While i can build a simple Model of a Spaceship, I’m no 3D artist, also I seem to be completely unable to come up with cool Textures. Also asset creation costs me a lot of time that I actually would prefer spending with things that I enjoy. So i bought a pack of simple Ship Models – for now they are good enough, and i expect to replace them at *some* point.

Besides toying around, and getting to those two conclusions I set myself to build a menu screen for the game.

bats_day_2

once I was happy with that, I actually created a git repository, as I reached the point where I didn’t want to start over again, if something goes wrong.

As long as I work alone on this, there won’t be much of a problem with git, but i learned that UE4 saves blueprints in a binary format, which has the downside that git won’t be able to do merges, and conflicts are solved by throwing away the changes of one of the two contributors. But I decided not to care about that for now, as I’m flying solo on this one.

Day 3 (February 14, 2015)

on day 3 I finally started making some good progress, i created the actual test-map that I’m using to try out the things that I’m building and then build a Ship actor, which is now moved around by applying thrust. Once that was working, I spend some time creating a particle system for the thrusters, which will give a nice visual indication of which thrusters are active.

However I cheated:

  • I was only using one thruster for forward/backward movement, by having the thruster (mounted at the rear of the actor) apply negative thrust for when the braking/forward-mounted thrusters should fire.
  • rotation is not done by thrusters yet – and I’m uncertain on if I will change this at some point. building it is easy enough, but controlling it might be rather annoying for the player (to stop your rotation you would need to apply counter thrust, so most players would at least keep a small amount of rotation constantly going)

At this stage I remembered something from last years global gamejam, where my team build a space-ship game aswell: If you don’t have a visual indicator on where your ship is going, then navigating (and stopping) gets quite hard. So I created a similar solution what we did back then, and added a direction guide.

At the end of day 3 I was quite happy with what i had achieved, and then I looked at my blueprint, which gave me the feeling of creating a big mess – the logic I had created shouldn’t be attached to the ship, and it seemed quite chaotic.

bats_day_3b

 

Day 4 (February 21, 2015)

Today I spend most of the time refactoring what I did during the other days, to get less chaos and a better basis for building upon.

I also removed one of the two cheats from Day 2, the braking-thrusters are now actually backed by an own physics thruster. Also the weight of the ship, and the amount of thrust applied by the thrusters is now much more realistic (than the 60kg that the ship had before ;).

However the screenshot of today is probably rather boring, as it simpy shows the refactored blueprint of what was a big mess in Day 3.

bats_day_4

Global Game Jam 2015, building airlock

If you follow this Blog, you probably already know that I’m a big fan of game jams. It all started for me 3 years ago during the Global Game Jam 2013, the first Game Jam I attended, so the Global Game Jam is something special to me.

Once again I enjoyed the atmosphere of the HfG, which provided the location in Karlsruhe. When I arrived, meeting quite a few people that I’ve met there in the last years as well, I already felt that this would become a great weekend.

This years GGJ started earlier, rather than 17:00 like in the last few years, the Time of 15:00 was communicated – and I made the mistake to assume this was mostly so people would be there in time. Well, I was wrong, the keynotes started earlier (at 16:30) and the theme was given at 17:00. Lucky, I had arrived early.

The Keynotes

(link)

The first keynote, by the woman behind Redshirt (a game I enjoyed playing a while ago) I liked, mostly because it didn’t tell me for the 100th time why I make games, no the speaker knew why we make games, and left no doubt about that.

The second keynote was spanish (or portugese? i don’t know, those two languages sound the same to me), and we had no translation, so I didn’t get much of the Message, but looking at the pictures and the credits at the end of it, it seems that someone tried to pick up on the FlamerGate affair, trying to force a pro-thirdwave-feminism spin on the Game Jam, so I guess i didn’t miss too much.

The third keynote by Reiner Knizia felt like an anachronism, not only had he chosen a visual style for his video that looked like it was made in the 90s, also his examples for connecting classic board games with modern technology made the impression to be years behind. In times where people are building augmented reality games, having a cheap looking plasic volcano that lits up under some conditions just doesn’t seem to cut it.

The Theme

(link)

After the keynotes the theme “What do we do now” was announced. To be honest, my first thought was “ok, those guys where pretty high when they came up with this”, but then my second thought was “well, still better than last years theme (We don’t see things as they are, we see them as we are).

While discussing with some of the other jammers I basically formed the Idea of an game where someone would have set directives to various actors, whenever an event arises, and that actor would continue acting by that directive (repeating the same action that was set for this event if an event was known, or asking for an additional directive if an event was unknown), creating a system which would need carefull balance (in form of the directives given by the player) to achive a goal that requires the actors to collect resources, transport resources, build something with the resources and keep each other alive.

I still like the idea, but during the pitches, a few friends of mine actually pitched an idea which I found a lot more appealing for this gamejam, so I joined their team.

The Game

(link)

Together, we then build the game “Airlock”, which is basically a game that you can play in a group of 5 to 12 people, utilizing a mobile device as a game master. The players are put into groups of Scientist and Saboteurs, where only the Saboteurs know who else is a Saboteur. Then each round one player will be set to be the “Operator” and create a plan who is going to which room to repair crucial systems of the space station that the group is stranded on.
If the majority of players agrees with the plan, every player gets to act his repair action within the room he was planned for – saboteurs however can choose to commit further acts of sabotage instead. At the end of the turn, the Operator then can check the status of the room (how many repair / sabotage points it has), and is responsible for telling the group the result (but, well which saboteur would be telling the truth to the scientists?).
If the majority votes against the plan, the turn is over immediatly, and the next operator is chosen.
In both cases, whenever a turn ends, one unit of oxygen is used up, if the group runs out of oxygen, the saboteurs win.
If the saboteurs manage to corrupt all rooms, or corrupt a room that then gets repaired, the saboteurs win.
If the group manages to repair a room before it is corrupted, the scientists win.
A room is repaired / corrupted once all its repair or corruption fields are filled with the corresponding markers, which are placed through the actions of the players.

We started with a slightly different set of rules and ideas on friday evening, and the first thing we did was to play the idea through with some cards, just to see if it works. Friday night I then spend looking at what technology we would use to create the game. At that time I was thinking that using a HTML5 app build with AngularJS might be a good idea, and i spend 1/3rd of saturday to look into phonegap, so we could deploy this app to mobile devices. As it turns out getting phonegap to run on an windows machine was already more than trivial, especially if one is used to the linux, not the windows command line (like me ;), so saturday afternoon we made the right decision when we agreed on using Unity as the engine. Now while my experience with Unity was basically “nothing”, having worked with c# before made it easy to be useful. Martin N. took charge of the actual Unity stuff, creating our user interface, while I implemented a huge chunk of the Game logic. Meanwhile the others spend a lot of time play testing more with cards, and involving other people in those tests, to see if/how the balance can work. I’m not sure how (where they took the time for that, if I’d have done it it would have taken me ages), but Martin, Martin, Bjoern and Jana somehow managed to also create game assets (graphics, sound) while doing all the other things, which really impressed me.

Sunday morning we started kinda late, but we had most of the app working, and where able to use the time to tie it all together, do a bit more of testing and a few last minute changes. I think what held us up the longest was the search for the name. As there wasn’t much code left for me to write, i tried to make myself useful digitalizing martin’s hand drawn airlock logo, so we could use it in the game, and finding a nice background (stole it from NASA, thanks for making it CC you guys rock!).

When the deadline approached we had a working build, even though we hand’t managed to get all the sounds going in the game jet, but what we ended up with was good enough to show to others, and to actually play a round.

All in all this was one of the lesser stressfull game jams for me, but it still blew me out of my day/night rythm for several days (hence i didn’t post earlier about it).

The Future

Since the gamejam we have played the game (for example in an Irish Pub after the Game Culture Club, where 4 of us attended), and we have been talking about what we want to do with. There are still a few improvements to the balancing that should be made, and the app itself needs a bit further refinement before we can offer it in the app stores. Also Martin suggested that we might actually offer a card game version, as we had a lot of fun playtesting with cards instead of the app as well.

So, where to get it?

The global game jam site linking to the game, has an apk, that you can throw on your android device. Sadly as we where running out of time with the sounds, this 1.0 version does not include everything, and we can’t update the file there.. BUT you can download the 1.1 version for android here.

CMDR Club: Whats going on with it?

Summer 2014, when the beta of E:D was going on I decided that I wanted to build a few tools around the game, which where mostly to make my own life easier – but as i have done with a lot of the stuff I’ve build to make my life better in EVE Online, I wanted to offer the same tools that I’ve build for myself (in this case it was the first Iteration of the route planner) to all other players as well – as if I’m in the need for such tool, then others are as well.

There is various rasons on why/how someone would spend as much free time as I do on 3rdparty- (or fan-) sites for games. Besides the “I need this tool” they always provide a good platform for myself to test out technologies, and train my own skills further. The route planner is a good example of that – yes i had implemented an a* before, but how would that scale on an application that many people are using, and what can i do to keep it performant?

The big surprise came the day that FD announced there wouldn’t be any wipes anymore. From a few Users that where using the roue planner on a daily basis, the numbers jumped up to several thousand unique users a day, and is still there, which forced me to actually spend more time on the project than I wanted (I was foolish enough to plan playing the game myself ;).

Well now the route planner is running mostly stable, using 2 webservers (hhvm+nginx), and an replicaset of 3 tokumx (a mongodb fork) instances. The only issue I’m having is that FD only provided an extremly limited set of “known” stars to the community, and that the crowd sourcing efforts of those trying to cartograph more have stalled (guess their all busy playing), which means the routes that can be found are far from being perfect, and there are many places – even within the known sphere of human influence – which can not be reached easy. Sadly i can’t do much about that – I hope the community is going to ask a bit louder for this data (or the information on how FD generated that data), so FD gives in and publishes more.

Then I’ve spend a few hours on optimizations that the community has asked for (ranging from a slightly different color scheme, to a more mobile friendly version) – a lot of the things I’ve been asked for I’ve delivered already, and some I’m still working on.

But I don’t want the website to stay “that route planner”, I want to integrate more tools / information, especially those that I miss myself. For example, right now I’m working on an aggregation of News / Blog Posts from various sources, as I feel a more central place where you can find this is lacking.

Another thing I want to add (soon) is proper profiles for registered users – which includes to allow users to name their user (right now its all random names, with the exception of my own profile).

So, feel free to swing by any time soon, there are new features comming.

regards,

Peter “Peter Powers” Petermann