Vex

Vex

Featured post

Welcome!

Hi, welcome to the official blog! Since we are so close to being Greenlit, I thought I'd provide all that are interested with a developm...

Friday 16 September 2016

Published!

Hello everyone!

I am very happy to announce that Vex has launched! You can find it right here:

http://store.steampowered.com/app/496480

Please do check it out, it's currently on sale until September 20th, we are offering it with 15% off! I really hope you enjoy it, especially if you've been following development for the past few months.

Just a quick side note, since released I've fixed a major bug which caused players to die despite being scaled up, after their first death. This would occur because spawn protection disables invincibility after 5 seconds, so if you were big, you'd still lose your invincibility. I did attempt to prevent this by simply not running the code if the player was big, but I accidentally capitalised the 'big' into 'Big', so although I thought I'd done it, I actually hadn't. All fixed now :) Also made a couple of levels a tad easier, and made the player slightly transparent whenever they enter ghost mode, which seems kind of obvious really. Anyway, I hope you're all enjoying Vex, please contact me if you have any bugs to report, or anything else you'd like to say!

Many thanks,

- Sam

Saturday 27 August 2016

Delays

Hello everyone,

Unfortunately, the past couple of weeks have been plagued with a few technical complications, mainly regarding platform support. Contrary to my previous post, Linux isn't playing as nicely as it first seemed, so we're fixing that. Also, the translations into Russian and Portuguese are still underway. Hopefully, Vex will be launched by September 13th.

We could have launched the game in an unfinished state, but what kind of studio would do that? *ahem* Hello Games *ahem*. No, it is my personal objective to make the final release of Vex 'bug free'. That's right, no major bugs, nothing game breaking, and hopefully, not even smaller bugs that might even have gone overlooked. An ambitious goal, admittedly, but I'd rather delay the game to ensure a stable and optimised release, than to disgruntle our players. We hope you understand.

Stay tuned for more information.
- Sam

Monday 1 August 2016

Finally, Linux support has arrived!

Good evening everyone,

Yes, I'm still alive! I've been very busy on something I really hoped I wouldn't have to; Linux support. 

As I'm sure many of you are aware, Linux is a very 'open' operating system, and is highly configurable. However, it is much more 'clunky' and less user friendly. Adding support for Linux has been anything but friendly. About 6 months ago I produced a pre-alpha build for Linux, just to check it would work, and it did. I assumed from that point on that my future builds would all therefore work. Big mistake. Back then, I was using version 5.0.0 of our engine. Since then, I've updated to 5.3.2 and 5.3.4. Little did I know, for some reason (still unknown), anything after 5.2 would break our game on Linux. This is not true for every game built using Unity 5.3 or above, but there was something about Vex that wouldn't work for Linux after 5.2. The problem was, at the time I had no idea which exact version. Was it 5.3.4? 5.3.2? Or was it a version that I hadn't even used? I tried it on 5.0.0, and it worked. I tried it on 5.3.2 and it didn't. I tried it on 5.2.0 and it did, but that version didn't allow for some features that I had used from later versions of Unity, so I had to go further up. At this point I was very frustrated. I tried 5.2.3, but that didn't support our features (but did kind of work). I then looked around to find out what changed between 5.2 and 5.3 to try and narrow it down to a version. The only thing that changed, was the OpenGL version between 5.2 and 5.3. So I did two things:

- I updated to OpenGL 4.1 on Linux (I think I did anyway).
-
I tested the last version of 5.2.X, which was 5.2.5. 

Finally, it worked! I had a game that wouldn't crash immediately, and loaded in to the main menu.

The next issue, was that nothing knew what to do when it got into the game. The development console said that there were hundreds of null references (which meant none of the objects had scripts attached, a major issue obviously). So I went back to the development environment, and it turned out that in downgrading from 5.3.4 to 5.2.5 would cause all the objects to forget which scripts were attached to each other, but only if there was any code within the 5.3.4 version that used code that wasn't recognised by 5.2.5. So, I converted it again, and instead of saving immediately, I tried to run it in the editor, and every time it crashed, I'd find the culprit script, and delete it. Turns out they were all scripts I didn't actually use, which was fortunate. Then I'd exit without saving, which meant the scripts wouldn't have the chance to disconnect, but still remembered that the corrupted scripts were gone. I then relaunched Unity, and viola! It kept the good scripts intact. I exported it and tried it, and it worked beautifully.

It should be noted that this has only been tested on Ubuntu 14 and SteamOS. It works very well on Ubuntu, although anti-aliasing seems to not be working, but I'll have a look into that. On SteamOS, there is currently a major issue where the UI and several objects flicker like mad, despite it being on the same build as the Ubuntu version. For this reason, we do not officially support running it on SteamOS, but we will make sure our Ubuntu version works as well as possible. I have yet to try it out on Mint or Debian (although if it's not friendly with SteamOS I haven't high hopes for Debian, since SteamOS is built off of Debian). I haven't touched Mac in a while, although it did work the last time I tried (back at 5.0.0), but as we have seen, it will probably have broken.

This mad endeavour has consumed about a 4 days of development time, which is why I haven't posted much. I'm sure we'll get back in to routine assuming Mac works! (Fingers crossed).


Thanks for staying tuned,
- Sam

Wednesday 27 July 2016

Coming soon to Steam

Hello everyone,

The past few days have been devoted to creating our Steam page, and we've just set it live! You can find it right here:

Vex on Steam

And it looks something like this:


We'll be bringing some development changes over the weekend, got a lot to do. As you might have noticed, we release some time in August, so we've got a lot to do. Thanks for reading!

Cheers :)

- Sam

Tuesday 19 July 2016

BIG update

Hello all,

The fact I've not post an update in 2 days should be a testament to how much has been done. From bug fixes, to new features, to Steam integration, this list should be fairly lengthy!

Bug fixes:

- Anti-aliasing now applied when changing quality settings
- Changing resolution will now scale the user interface, finally!!! This has been a persistent issue, and I wanted to make sure I was using the most efficient method possible before fixing it (there are several methods).
- Fixed Field of View not transferring between games
- Fixed VSync not transferring between games.

Changes:
- Important: All sensitive data is now ENCRYPTED before being saved. This means the player can no longer edit the game files to change attributes such as levels unlocked, world scores, etc. This is very important, you'll see in a moment.
- When pausing the game in the main menu, your stats will now show, instead of just the bare options (you can access the options menu from the stats menu).
- Added motion blur!
- More environmental changes
- General code optimisation

- The story has been developed although not yet implemented, and will differ from the taster included in the previous post.

Steam:
That's right, we are now utilising the Steamworks API to bring a few awesome features:
- 12 Steam achievements (More to come!)
- Player will now be referred to using their Steam name
This is why player data had to be made secure, in order to prevent people easily unlocking achievements.
Sneak peak:

Planned Steam additions:
- Steam Trading Cards
- Steam Leaderboards

To do:
- Add more statistics
- Finish story inclusion
- Fix any more bugs
- Finish Steam integration
- Maybe look into a Zen mode.

I probably won't be posting again for a while, so let's hope the next post is juicy!
Thank you for reading,
- Sam

Saturday 16 July 2016

New Features

Hello all,

Most of the bugs have been fixed, so I've been adding some small improvements here and there. I've also introduced a new concept, which I'll get on to in a moment.

Changes:
- More environmental tweaks
- Change to power up aesthetics
- Fixed help menu appearing too quickly
- As per request, I've re-added the FPS drawer in to the options menu, which provides an in-game FPS monitor in the top right-hand corner.

After some feedback, I found that there needed to be more explanation and backstory as to why a humble cube would wish to undertake such nefarious challenges. To answer this, I've added some backstory in the form of frequent text panels appearing. For example, upon first playing the game, the player will be met with this:


The scene in the background is actually an in game scene, so the effects and entities are actually active and moving, which is rather nice. Anyway, this graphic provides the player with some motivation behind their experience. Of course this story is subject to change.

However, this of course prompts some kind of ending, something the player will find out when the game is completed. Vex isn't supposed to have some kind of fully fledged backstory, so we won't be exploring that avenue too far. With that said, we would like a fun and engaging conclusion to Vex, a boss battle perhaps? In any case, we'll be replacing the 'Congratulations' dialogue with something more satisfying soon.

Thanks for reading!
- Sam



Friday 15 July 2016

Options Menu Changes

Hello everyone,

A few additions and a few changes.

- Field of View slider added to the menu.
- Camera will now zoom in to the player if obstructed by something (Really useful). This can be toggled on/off in the options.
- 'Restore Defaults' button added to restore the default options.
- 'Facebook' button returns.
- Reset Progress button glitch fixed (set sensitivity to 1%).
- The options menu can now be navigated using WSAD or the arrows, and uses the return key to invoke a button click.

Current options menu:

- Map environment changed and improved.
- Increased amount lava and water in the first 2 dimensions.

Thanks,
- Sam

Wednesday 13 July 2016

Why we chose Unity3D

Hello everyone,

A slightly different kind of post today.

Our Greenlight campaign provided us with a fair amount of feedback. Good feedback was more common than poor, but the more negative feedback was very helpful. Critising our game is the best way to help us develop it further. I've since made changes to Vex that were inspired by the comments on our Greenlight page.

However, the use of our chosen engine, Unity3D, was a talking point for a few people. I'd like to begin by stating that most criticisms of the Unity engine are actually fair, and that we completely empathise with those who discourage its use. With that said, I'd like to explain why we chose the Unity3D engine.

We are creating a retro game, a game that harks back to a more simplistic and liberating time for the video game industry. Although we want our game to look stunning, we chose to achieve this using a stylistic aesthetic, rather than an intensely graphical one. It would not have been right to claim we are creating a nostalgic platformer, and then use photo-realistic textures and lighting. We think Vex looks very visually attractive, and we've pursued different methods of stretching the graphical fidelity, without deviating from our core goal - to invoke a nostalgic experience.

Many people claim (and rightly so), that developers who use Unity simply grab free/cheap assets from the asset store, jumble them up in to an incoherent mess. We are proud to have created 90% of our assets using Blender. We have only used two or three assets from the store, and checked that they would not look out of place in the environment we designed. Using a mixture of assets is a surefire way to ruin the immersion, so we have been very careful on that front.


Much of the hate for Unity actually derives from issues that have now been addressed, but since hating on Unity is the cool thing to do, it's become more of a meme. People often complained it shouldn't be relying on flash, or that it was unoptimised, or it used basic lighting techniques. Almost all of these issues have been fixed, and since the release of Unity 5, it has become an appealing engine to professional developers. It no longer uses flash (now uses WebGL), it has improved vastly on it's optimisation (we've also been optimising to make Vex run as well as it can), and there are many different lighting techniques now, all of which are highly customisation.

Essentially, we understand the concerns for Unity, but since 2014 it's becoming a fantastic engine. It is perfect for our game, and we're sure that we can prove it upon the release of Vex.

Thanks for reading,
- Sam

EDIT: I just remembered something else. Eventually, we wish to add virtual reality support. As you probably know, VR is quite intense on the GPU, so in order to maintain a high frame rate (90FPS minimum for VR), we decided to keep things simple. This is all about the immersion.

Mechanical Tweaks

Hello everyone,

I've been trying very hard to perfect the movement mechanics today, which meant finding a good balance between player drag, dynamic friction, static friction, move speed, max speed, player mass and angular drag. As you can imagine, tweaking each variable will have an effect on the behaviour of others, so it's been very difficult to pinpoint the best balance. My optimal solution is one where the player does not slide much once they let go of a key, but one that doesn't require too much force to move the player, as this results in unresponsive and laggy movement. After much trial and error, I think I've found such a solution. 

Values:
- Player Mass: 1
- Player Drag: 1.2
- Angular Drag: 0.2
- Dynamic Friction: 0.3
- Static Friction: 0
- Move Speed: 20
- Max Velocity: 5 (magnitude of velocity vectors, not actual speed)

This has also meant I've had to change the behaviour of some power-ups:

Values:
- Slow-motion power-up:
    Speed: 100
    Max Velocity: 8
    Time Scale: 0.4
- Fast power up:
    Speed: 32
    Max Speed: 6.5


This has also meant changing how the ice affects the player:

Values:
- Player Drag: 0.01
- Player Mass: 0.3
- Dynamic Friction: 0.1

Other changes:
- Pressing the 'R' key will now restart the level, in the same way the restart button in the options menu does (bear in mind that this does increment the player death count).
- Removed camera lock option; it forced the player X & Z coordinates to be locked, which ruined core gameplay mechanics.
- Replaced camera lock with a 'High-Friction' toggle, which means the player will instead tumble and roll, instead of sliding. This is harder to control, but rather good fun.
- Tweaked the environment on 5 maps to improve gameplay.
- Increased the brightness in the 4th dimension.

Bugs Fixed:
- Cylinders in the 4th dimension will now work when the player is stationary.
- Tweaking the movement values has fixed 2 issues where moving in fast/slow mode caused the player to move in a choppy way, with jumps and leaps.
- Fixed sound glitch when timer runs out.
- Fixed menu glitch where the game complete menu could be removed if the game was paused when inspecting the options, after completing a level.

Thanks for reading!
- Sam


Sunday 10 July 2016

Lots of horrible bugs crushed

Hello again,

Today was mostly dedicated to eliminating some bugs!

Bugs:

- Fixed invincibility from colliding spikes, rocks, idols, or cylinders when the player is stationary.

- Fixed an issue where levels that contained many enemies caused the light and shadows to fight and flicker.

- Corrected the slow motion pill attributes to prevent cumulative speed stacking, preventing the flying-across-the-map glitch.

- Fixed an issue on level 31 where the player could not move without restarting, after reading the message regarding quantum entanglement.

- Changed detection mechanics for some environmental objects.

- Fixed 'clipping' through certain objects.

Changes:
- The lightning effects in the quanta dimension will now only occur if the effects are set to medium or high, not low.


- Moved the slow motion power-up on level 27.

To do:
- Tweak movement mechanics more

- Alter enemy spawning
- Finish implementing camera-to-player lock-on.

More to come, it's 2am and I'm knackered!

G'night folks,

- Sam

Saturday 9 July 2016

Changes

Hello all,

Just a few more changes to announce:

- The player's drag has been increased from 2.32 units to 3.8 units. This means the player will less easily slide when coming to a stop. To prevent the player becoming slower as a result of this, the player's mass has been decreased from 1 unit to 0.85 units; the physical size (dimensions) remain the same, you will just weigh less. With the increased drag, no effect should be noticeable, except for the lack of excessive sliding.


- Removed the 'Facebook' option from the menu, and replaced it with a 'Graphics' Option:



This can be set to:
  • Fastest
  • Fast
  • Simple
  • Good
  • Beautiful
  • Fantastic
Each type has differing degrees of graphical fidelity. Aspects such as Anti-aliasing, Shadow softness, texture quality, etc, are all varied.

- Fixed the lava and water quality appearance in 3 levels.
- After adding the new graphics menu, building the game would break the textures. Updating the engine seems to have fixed this, as well as a water rendering issue.

That's all for now folks!
- Sam



Wednesday 29 June 2016

We have been greenlit!

We have finally been accepted on to Steam!

I know this isn't strictly development-related, but I still feel I should be expressing my thanks at every opportunity.




Thank you so much to everyone who has supported the project! Vex should be available on Steam within the next 8 weeks, so stay tuned!
- Sam

Sunday 12 June 2016

Changes

Hey guys,

Just a quick post about some changes I've made.

- In the main menu, the environment will now grow from a single point when each realm is visited, instead of just popping into existence.
- The Ice spikes now have a base, with particles to show they are floating.
- Added to the environment in the main menu.

- Optimised multi-monitor support, check it out:

(They don't line up properly because of Nvidia Surround, not the game itself. This can be tweaked in the Nvidia control panel. Not sure about Eyefinity.)

Also, a major bug has been fixed:
- Player collider no longer gets caught on invisible object colliders in the floor. Finally fixed it!

Cheers,
Sam

Saturday 11 June 2016

Fixed some bugs

Hi everyone,

Slowing crunching through the code and getting rid of nasty bugs. Here's a few I've done:

- When switching view type, your current pitch and yaw is now transferred too.
- Fixed bonus level string tags.
- Fixed sentries in the ice dimension randomly changing purple.

Known bugs:


- When unpausing the game using an Xbox 360 controller in the Quanta dimension, the player will automatically be entangled.
This bug is now fixed!

Added Xbox 360 Controller Support

Hello!

As promised, I have now added xbox 360 controller support for Vex. This is a partial feature, as it doesn't apply to menus/options. The mouse is still (currently) required to change options, click 'Next level', etc., 


EDIT: I have now implemented support for the controller in the menus. The only thing it cannot do that a mouse can, is toggle V-Sync, and Toggle Music On/Off. This is because controllers don't seem to like check-boxes. The music can be muted by turning the volume to zero though.

The xbox 360 controller is fully compatible with movement, interaction and abilities. When a controller is plugged in, the mouse will stop working immediately, but the keyboard will remain as a potential input.

The controls are as follows:



Also, to navigate the menus uses the left thumbstick, selection uses A, and exiting uses B.
These controls are subject to change.

I also hope to bring PS3 and Steam Controller support! If all goes well, I may add Oculus Rift support as well. If you'd like to see Xbox One and PS4 Controller support, then leave a comment.

Cheers all!