Project Void Vita

From GameBrew
Project Void
Projectvoidvita2.png
General
AuthorAkabane87
TypeShooter
Version0.1.0
LicenseMixed
Last Updated2017/09/03
Links
Download
Website

This project aims to be a space opera focused on dogfights. The way you build your spaceship using different modules such as engines, canons and so on, will impact the momentum and the whole physics that will make your ship move and react.

Any module will have independent resistance and destroying a module will affect the physics of the ship until you repair it.

The game was submitted to the GekiHEN Homebrew Competition.

User guide

You spawn with a default ship equiped with 3 canons and 4 engines in a small portion of the universe centered on an asteroid field.

An enemy ship controled by an AI will attack you once it spots you and patrol in the asteroid field otherwise. Once the combat is engaged, there will be no way to escape unless you defeat the AI or get defeated. The enemey ship has the same modules as yours, with the same properties.

There is for now no real gameplay except the dog fight system that is still in progress. Each module composing the ships can be destroyed, affecting the inertia tensor of the ship.

Each module has low regen rate, as long as it is not totally destroyed. When a module is destroyed, the UI button "Recalibrate" will become available (as long as the recalibration is possible with your remaining engines), allowing you to automatically recalibrate each engine power to make your ship move straight forward again.

The recalibration is not instant and will smoothly do the correction in a fix amount of time. If a module is destroyed during the recalibration, it will restart automatically without letting you press the button again.

Pressing O button will throw a bunch of homing missiles consuming more energy than the standard blaster shots. Both consume energy from the generator of your ship when fired. The generator will refill energy constantly when you stop firing. If the generator is destroyed, no more energy will supply your ship, making your engines and weapons stop working.

Controls

Left Analog - 3D strafe right/left/up/down

Right Analog - Ship's orientation and aiming

L - Acceleration

R - Shoot

Cross - Toggle pause+freemove cam/unpause+ship cam

Triangle - Toggle friction/no friction (ie inertia dampeners on/off)

Square - Toggle auto aim/manual aim

Circle - Fire homing missiles when a target is locked

D-Pad - Navigate through the debug menu

Start - Show/Hide debug console

Select - Reset the scene

Front Touchscreen - Manually select a target, Interact with the HUD

Screenshots

projectvoidvita3.pngprojectvoidvita4.png

Media

PS Vita Hacks: How To Install Project Void | Homebrew Game | Tutorial 2020 Review (Robles Junior)

Changelog

v0.1.0 2017/09/03

  • AIs now use both missiles and standard blaster shots.
  • AIs will completely stop if their generator is destroyed, and will use inertia if the engine recalibration is not possible.
  • Disable canons and thrusters when the generator is destroyed.
  • Make the recalibration button only available when a recalibration is possible.
  • Add a volume balance control for each sound data for balancing the sounds.
  • Integrate sounds for blaster shot, missile shot, blaster impact, missile explosion, module explosion, and thrusters.
  • Add a spatialized sound system to the sound player to handle 3d sounds correctly (pan and doppler effect depending the speed).
  • Replace forces by impulses to stop beeing framerate dependant.
  • Add canon gauges to the HUD and change the HUD disposition.
  • Prevent the engine recalibration to cut all engines when the recalibration is impossible.
  • Optimize a bit the asteroid fragment shader.
  • Add a batch renderering system for asteroids (this shifted the high CPU consumption to the GPU without any gain of FPS...).
  • Fix a weird bug on vita's flare rendering where the flare could sometime blink randomly (no idea what really happened...).
  • Add a draw order for sprite rendering, to force the rendering order instead of using the center position depth (used for HUD elements always to be in foreground).
  • Add frustrum culling for the particle emitters (per sprite).

v0.0.4 2017/08/07

  • Remove the module disabling when hp < 50%.
  • Add a HUD button for the manual recalibration.
  • Disable the auto recalibration on module destroyed for the player.
  • Change the recalibration time from instant change to 3s continuous change.
  • Add a master control of the engine power.
  • Add energy consumption for the missiles and rebalance power/energy/damages.
  • Add a 3D HUD to the game, displaying gauges for canons and engines, energy, an holographic model of your ship and your target.
  • Add power consumption for canons.
  • Add a debug menu entry for billboard fog enabling/disabling.
  • Make AIs shoot missiles.
  • Lots of optimizations.
  • Add homing missiles as alt fire on circle button.
  • New world particle emitter emmitting fog particles.
  • New dynamic asteroids spawning system using a pool of recycled asteroids.
  • Fix the shoot position calculation that was actually wrong in some situations.
  • Automatically recalibrate the engines after a module was destroyed.

v0.0.3 2017/03/19

  • Reduce the max speed allowed in strafe when inertia is not enabled.
  • Add a shoot position calculation for moving objects.
  • Add a target selector and a crosshair on the shoot position of the selected target (touchpad to select a target).
  • Fix a mistake in the volumetric fox slicing.
  • Do not apply smoothed lod transition when transitionning from not visible to visible in term of frustrum culling.
  • [TEMP] Teleport the character ship when reaching the limits of physic world.
  • Fix another mistake in the projectile collision tests.
  • Fix the autofocus shoot calculation to aim the autofocused point instead of autofocusing along the original shoot trajectory.
  • Fix wrong hud element rendering on selection behind the camera.
  • Fog rendering enhancements.
  • Add some basic AI for other ships.
  • Add color presets for player ship and enemy ships (ie faction type).
  • Make the fire rate per weapon (for now all weapons keep the same firerate).
  • Define asteroids as neutral faction (ie no faction).
  • Add some real IA behavior:
    • patrol system,
    • enemy detection,
    • enemy engaging,
    • attack vector and target tracking,
    • obstacle avoidance given the distance and the mass of the object.
  • Improve IA avoidance with the ships and moving objects.
  • Fix a bug with the initial values of the debug menu options' preset (default values were not displayed correctly).
  • Use batched raycasts for projectile collision detection instead of calculating collisions geometrically (faster as hell).
  • Use the exact contact point for the explosion FX source.
  • Fix a mystical bug with batched raycasts that were making raycasts return random crap after some asteroids exited the physical world.
  • Fix multiple issues with the new projectile raycast batched system.
  • Add the new auto lock features and the new HUD system.
  • Remove the old free move reticle preset from the debug menu and all options related that are not used anymore.
  • Fix some double shockwave explosion fx possibility on high framerates.
  • Smooth the avoidance of the AI that was too sharp (now using the same max strafe force as the player).
  • Make the auto lock progressive on lock acquired/lost and also resumable.
  • Increase the AI detection range and the length of the attack vector.
  • Slightly increase the collision radius of the asteroids to better fit with the visual.
  • Fix the orientation of axis aligned sprites with non identity local orientation matrix.
  • Make the hit FX in the hit target referential.
  • Change the hit FX to make lighter and brighter (and smaller).
  • Make a cleaner collision handler where the AI can catch proxy/triggers/projectiles collision events.
  • Toggle manual/autolock shoot mode with square button.
  • Add damages to the projectiles that can destroy any part of the ships.
  • Make engine and canon modules destructible as well (for now disabled).
  • Make a cheap red color fader proportional to the amount of damage taken.
  • Stop the barrel roll for AI while turning.
  • Enable the inertia (no inertia dampeners) permanently on the AI if at least one thruster is broken.
  • Make destroyed modules physically/visualy destroyed.
  • Consider canon and engine below 50% of their HP disabled.
  • Add a slow regen for non destroyed modules.
  • Add an explosion FX when a module is destroyed.
  • Make AIs switch target when the current target is destroyed.
  • Make the rotation of the ships proportional to the remaining enabled engines power (so that a ship with all engines destroyed cannot turn anymore).
  • Fix some mistake in the calculation of the torque dampening that could lead to some angular velocity divergence.
  • Add an auto target system for the player when no target is selected, if any enemy enters inside the autolock area.
  • Make the shoot position displayed and the autolock assist auto target the different modules alive in a specific order (Engines > Canons > Others).
  • Add an additional enemy AI, and an allied AI.
  • Fix a wrong friendly fire of the allied AI on the player.
  • Use different colors for the target selector and the crosshair depending the target's faction (white for neutral, red for enemy and blue for allied).
  • Change the sphere's color of the ship modules to turn to red with a factor proportionally inverse to the remaining HPs.
  • Leave back only 1 AI for framerate purpose.
  • Deselect the target if out of display range.
  • Remove the pick and drag objects option from the game.
  • Hide the HUD when in pause mode.
  • [TEMP] Mirror the AI ship relative position from our ship when really far from us.
  • Add a stun duration on the AI when one of its module is destroyed, to make it lose control of its ship as a real player would do.
  • Apply the fog value to the ship's modules too.
  • Double modules' max HP for a longer fight duration.
  • Prevent AI stun lock.
  • Change the default color of the ships.
  • Put the red color of the damaged module on the emissive channel.
  • Allow to spawn more AIs (enemy and ally) from the debug menu (need to press reset button to be effective).
  • Improve the camera.
  • Prevent taking shoot inputs into account and updating the autolock while the game is paused.
  • Prevent self targeting.
  • Micro optimization on the collision detection of the projectiles depending the frustrum and the distance to the camera.

v0.0.2 2017/02/05

  • Add a smooth lod transition.
  • More accurate ribbon trails.
  • Recoded billboard renderer that can now manage correctly Z ordering of semi transparent billboards with different textures.
  • Fix bad projectile collisions on biggest asteroids.
  • Fix a wrong duplication of the light when resetting the scene.
  • Fix the physic damping that was framerate dependant.
  • Use real thruster properties for ship's acceleration and strafe.
  • Make engine FX proportional to and in the direction of the total amount forces applied to the ship (including friction) to have a nice thruster effect of inertia compensation when stopping.
  • Smooth thruster flare appearance/disappearance.

v0.0.1 2017/01/28

  • This version is more like a sandbox where you can only drive a prebuilt ship in an asteroid field and shoot asteroids.
  • This includes temporary features such as drag and dropping asteroids with the touchscreen, a debug menu, and wip controls.
  • Nearly coded from scratch crossplatform Vita/PC(d3d11) engine using the official sony's SDK.
  • Physic engine (native on vita and provided by sony in their SDK).
  • Optimized volumetric fog using FBM Perlin noise.
  • Procedural asteroids geometry and texture (textures are precomputed for faster loading time) using FBM Perlin noise.
  • Single light spot rendering shaders for 3d objects.
  • Tweakable controls with 2 presets (from the debug menu).
  • Tweakable rendering options (from the debug menu).

Credits

  • Programmer/Designer/Graphist - Akabane87.
  • Music - Stephane Badey.

Special thanks:

  • To Team Molecule for all their incredible work on the HenKaku.
  • To TheFlow for the amazing VitaShell.
  • To Netchoa, Adrian Z., and Arnaud M. for testing and giving some precious feedbacks.
  • To the members of Qoode's slack (ex Xtreamlua team) for enduring my spam in the psvita section for better and for worse.
  • To SCE for discontinuing the psm and forcing independant programmers to go underground.

External links

Advertising: