Category Archives: Practical Exercises

Argos: CICE MPV Project (Unity3D Master degree final project)

Details

Project: Argos: CICE MPV Project
Genre: 2.5D action-platformer, Unity3D game framework
Platform: Windows, Linux, Mac
Job description: Gameplay Programmer, Tool Programmer
Technologies: Unity3D, .NET, C#, Git, Source Tree, Argos.Framework (own Unity3D multiplatform framework)

Description

My final project for my Unity3D game development master degree coursed in CICE on 2017. A 2.5D cinematic action-platformer developed over a custom multiplatform framework (the true core of the project).

This project was developed while I was working on the porting to Nintendo Switch of Ginger: Beyond the Crystal in Drakhar Studio. During this period (3 months) I was working in the idea of creating a framework that ease the common tasks in a multiplatform development with Unity3D, like manage the input setup or the file system over the different operating systems or consoles. After finish my contract with Drakhar Studio, I was working on the playable part of the final project, the 2.5D platformer and how integrating the framework in his development. I made it in only 4 weeks.

The framework cover the following areas:

  • Input system:

    A single player oriented input system, based on Input Map assets witch defines actions and axes definitions for use in separate areas of the game like UI or player actions.

    This system is based on Virtual Axes that bring the posibility to define input based on keyboard, mouse and/or gamepad axes (sticks, DPads), and Input Actions to define actions like jump or shoot, using input from keyboard, mouse and/or gamepad buttons, DPad and triggers. Input Actions can managed from events, and both Input Actions and Virtual Axes can allow input rebind in runtime.

    This system nativelly support the popular game controllers like XBox 360, XBox One, PS4 and Nintendo Switch Pro Controller (on supported systems). The input system manages automatically a common map between different controllers, in a way to only uses a unique button list to setup the actions and axes. The system also allow the use of generic gamepads and uses a generic input map asset to setup the input map, also allow this setup in runtime.

    This system implement a custom Standalone Input Module and some custom components to bring full support on Unity UI components for UI navigation.

  • Multiplaftform file system layer:

    A file system layer to safe manage the basic file operations between Windows, Linux and Mac systems. The system manage a predefined paths to manage savegames, settings, screenshots and custom data folders on user document folder, and avoid errors on path formatting or creation/check the current folders.

  • Localization system:

    A simple localization system that allow to localize UI text elements with rich text formatting support. The system implements a simple component that manage the UI Text component content in realtime. For the project, this system was designed for only support English and Spanish languages.

  • UI components:

    A serie of UI components to bring some functionalities like doble click events, customizable text message events and UI input icon system to show text messages with keyboard, mouse or gamepad button or axis icon based on the common input map system implemented on the first point of this list.

  • Misc additions:

    Multipurporsal scripts and components with various ideas learned and implemented during this master degree on each practical excercise.

Argos.Framework, coming soon

Today, I'm working in this framework to pulished some parts and improved ones (Input System code and his editor inspectors) and rewriting others from scratch (file system, localization system and some UI components), and implementing new additions like XInput gamepad vibration support (with visual pattern vibration assets, to allow to design vibration patterns similar to the classic DirectInput Force Feedback patterns), GameJolt API integration (user session, trophies, leader boards and cloud storage) and more.

Other additions that I'm working is the XBox One support, via Universal Windows Platform, with XBox Live basic services (user session, user stats, leader boards and file storage). The goal of this is trying to unify this services with other like the GameJolt or Steam services (even consoles services like PS4, XBox One (not UWP) or Nintendo Switch) under an unique layer to simplify the development between platforms, the main goal of this framework.

The Esc4pe, a “primitive shooter” made with Unity3D

Featured tweet from GameJolt

Video reviews from itch.io & GameJolt

Today (August 4, 2018), the game reached +120.000 visits and +50.000 downloads, with a 4/5 avg. rate and featured on cover pages, on itch.io and Game Jolt marketplaces, in 60 days (near of 60.000 visits and 30.000 downloads between March and early May of 2017).

The game received a lot of feedback in the comments, and some users made video reviews with gameplays. This is a Youtube list with videos collected from user comments and Twitter searches:

Details

Project: The Esc4pe
Genre: First Person Shooter
Platform: PC (Windows, Linux, Mac)
Job description: Game Programmer, Game Designer, Level Designer
Technologies: Unity3D, .NET, C#
Links: Post on my blog, Visual Studio EX3, with more details (ES)

Downloads

Featured on itch.io marketplace with +25.000 downloads with a rate of 4/5 stars!

Featured on GameJolt marketplace with +40.000 downloads with a rate of 4/5! (Click on the thumbnail to view on gamejolt page)

Credits

José Miguel Sánchez Fernández - [EX3]
Game Programmer, Game Designer, Level Designer, "Voice" actor

Third party assets

Standard Assets & Cinematics Effects - Unity Technologies
 
 
Sci Fi Characters Mega Pack - PROTOFACTOR, INC: https://www.assetstore.unity3d.com/en/#!/content/19831
 
 
Scifi LowPoly Ammo Pickups - Pixelgraffiti: https://www.assetstore.unity3d.com/en/#!/content/12005
 
Yughues Free Palm Trees - Nobiax / Yughues: https://www.assetstore.unity3d.com/en/#!/content/13540
 

Amplify Color and FXAA Fast Approximation Antialiasing - Amplify Creations: http://amplify.pt/

Light Shafts effect - Robert Cupisz: https://github.com/robertcupisz/LightShafts

Camera Filter Pack (CRT Effect) - Vetasoft: https://www.assetstore.unity3d.com/en/#!/content/18433

Sound weapons & items effects are downloaded from Freesound.org site (http://www.freesound.org). All samples are under Creative Commons licence (Attribution 3.0 License)

Music themes "Hitman", "The Complex" & "Killers" are creations of Kevin MacLeod (incompetech.com) and released under Creative Commons licence (Attribution 3.0 License)

Description

This project is made as practical exercise for the "Master Degree in Video Game Development with Unity3D & 3DS Max Official Autodesk (MPV)" of CICE Madrid (http://cice.es/curso/master-en-desarrollo-de-videojuegos-con-unity-y-3dsmax/).

A "primitive shooter" developed in one month with technical restrictions based on the topics seen in class until the project start date. The game is not optimized (its performance is not stable).

Support XBox360 Controller in all PC platforms (implementing the input map for Linux and OSX following the information found on this wiki).

The game is initially designed to be played in 5~10 minutes (It can take 20~30 minutes to complete).

Developed and full tested under:
- Intel Core i5-2500 @ 3.30GHz
- 8GB RAM
- AMD Radeon HD 6800 Series (with Crimson drivers)
- Windows 10 Pro x64

P.D.: This game will not receive new updates, bug fixes (for now) or new version with more levels.