top of page

Brandon Arandia

Hey there! I’m Brandon, a member of the programmer team in Guardians of the Galaxy: Battle for the Universe, made with Wiwa Engine. Making this game has been a great and enriching experience that I will never forget, either by the nights without sleep, the laughs we had with friends or excitement of being part of a "big" team for the first time. I hope you enjoy playing our game as much as we enjoyed making it!

I have always liked making fun things for others and expressing my creativity, either by building with Legos, writing, drawing or making music, which transformed into making games once I learnt programming.

Through this career I have been able to get through many fields, from art, to design, to programming, and I have been able to overcome all the challenges that they put me through, although I definitely think I will not be a professional artist, ha ha ha!

Looking back now, I see that this was also the reason why I did not have a clear idea of what to do in the future. However, this project made me make a decision, and I opted by doing visual effects and particles, as it was the thing I was more familiar with at that moment. That being said, now I can say that it is a part of the development that I have learned to like and care, as it is an area that truly gave me an opportunity to create and imagine, while being an important part of the game. I am proud of what I have done, although I also know that I still have a lot to learn too!

If I had the opportunity to go back and choose again, I would definitely choose to do this again.

 

arandia_brandon.jpg

BACKGROUND

CONTRIBUTION

In this project I was in charge of designing and programming the particle system in order to create effects and give feedback to the player about what is happening in the game, as well as enhancing the aesthetics of the scenarios and gameplay.

I was also in charge of making these visual effects along with Allen Bateman, following the design documents made by Gerard Martinez, with the help of Alexandre Carreras, Ali Hassan and Albert Ramisa.

Also I was the main organizer of the particles team, and I was in charge of keeping track of the process and realization of these visual effects, as well as improving and fixing the system whenever it was needed.

My main task was to develop the Particle System, and make it complex enough to be able to create the behaviors or the desired visual effects, but at the same time simple enough so that it can be manipulated easily and make the developer use the least amount of code as possible.

In order to do so I made an interface in the Inspector Panel where the developer can control the behavior of the desired visual effect:


The main Interface contains options to customize the main elements of the Particle emitter.It also has a section to set the attributes of the particles emitted, such as if they use billboarding, its lifetime, its permanency, all the transformations (position, rotation, scaling) and blending mode along with the colors it uses.

Particles & Visual Effects

image18.gif
image20.gif
image33.gif
image32.gif
image31.gif
image27.gif
image30.gif
image29.gif
image28.gif
image26.gif
image22.gif
image21.gif
image19.gif
image17.gif
image35.gif
image38.gif
image36.gif
image39.gif
image16.gif
image9.gif

Allen Bateman

Hey there! I'm Allen, the producer and technical artist behind this project. Despite the challenges, we've created an amazing game in record time. It's been a pleasure working with this talented team. Together, we've poured our hearts into this project, and I can't wait to share the experience with you.

I’m a person with many different interests, my mind is all over the place with details that want to learn. As the very curious person that  I am, I always have the drive to learn new things from different points of view to have a clear understanding of the whole. This always led me to never know what path to choose as a career.

I’ve never thought that developing video games would involve so many interests that I have. The mathematics and the logic, the creative part to represent ideas and emotions and the capability for creating things for people to enjoy such as I do.

For me, video games are the door that opens the path to creating captivating worlds that immerse people in extraordinary adventures.

bateman_alan.jpg

BACKGROUND

CONTRIBUTION

For this project, I was in charge of the production my main task was that the objectives that were set were realistic and achievable making sure that the outcome was a success.
So for that to be effective I had to be focused on many areas of the game development to make sure everything was produced in time and with the best quality we could make.

As a secondary role but non the less very important, I contributed as a technical artist where my main goal was to give the best visual and auditive feedback possible.

Production

I employed two main elements to effectively track the production process. Firstly, I utilized an Excel spreadsheet to monitor the progress and involvement of each team member in the project. This allowed me to have a clear overview of individual contributions.

Secondly, I found the tool Hack&Plan to be immensely helpful in setting milestones and maintaining a comprehensive record of the game's progress. It provided a structured framework for tracking and organizing our development tasks.

To improve involvement on the project and also gather feedback on what we were developing I made them play test once we reached the milestones so each team member could see reflected their work and also see how the game was evolving.

Overall, we had some communication mistakes, but with the great work of the leads, we managed to have a consistent workflow that lead us to achieve the goals we had for the project.

Animation system

My first task of the project was to develop an animation system, a module that could handle different animations for a model. I used Assimp library to extract the information about the bones and then used them to make all the transformations calculations.

The module's implementation was a success but had some shortages such as different types of blending for some animations that we needed for the project. Lately, a library was implemented to support those needs our animations had.

Feedback

Particle system

My secondary main task was to help with the development of a particle system that could handle different types of meshes, use different materials and shaders and also that handled blending a very important aspect of a particle system, transparency.

For that I re-did the existing particle system, which had some shortages that we needed for the production of the visual effects, and made the fundamentals of it
. From then on Brandon Arandia worked on the implementation of the functionalities and logic behind the particle system so it was easy to use. From there I helped to develop some particles.

Shaders:

I have created many shaders in this project to give visual support to the game, the main ones are used on the particles but also on the scenes and the characters such as the Outline shader. I wrote about this because it is a small detail that really helps to get a nice feeling of the game, a cartoon-stylized aspect.

Audio

Another of my main task was also to do the audio, I did search for gameplay audio, environment audio and all the audio needed to give a sense of feedback and immersion in the game.

Also had to set up the Wwise project structure taking into account transitions, attenuations and mixing volume of all the game sounds.

This task was tedious because it required a lot of time to search for good SFX that fit the game.

Gameplay music:

For the game music, I’ve set different songs for different types of scenes. But for the gameplay music, I’ve tried a new thing for me which is the vertical layering approach that consists of making different loops of layers of instruments that fade in or fade out given a game parameter, in this case, I used a combat intensity parameter that takes the current number of enemies.

This was a fun experiment as it was my first attempt to produce music for a video game, I’ve learned a lot about how to make interactive music for video games and how is the workflow done.

Secondary task:

-Enemy melee animations.
-Player state machine
-Fixed bugs
-Aid teammates with code issues


 

Alexandre Carreras

Hello there, I’m Alexandre, one of the programmers during this project that barely maintains the circadian cycle. However I like more things that maintain a healthy sleep habit such as project management, C++ programming and artificial intelligence, points that I want to expand during my career in the future. I consider myself a curious and passionate person that easily catches interest in multiple topics.

I entered this career with the hope to work in the videogame industry. This has not been the case yet. But with the time passing and the formation in different topics related with videogames I have started to figure out what i want to specialize in. Programming is one of the main aspects that I want to focus on. From one side having skills in this particular field of video game development gives an immense freedom to create any system for the game. On the other hand, there is no game without programmers. This combination is especially true in this project.

During the development of GOTG, we were short of programmers, which forced us to take in charge of multiple fields of a videogame. In my case, I was able to work in physics, artificial intelligence and particle implementations. I am really grateful to have worked in those fields, grateful to have been in the programming team with amazing people, getting to know more about them while earning experience in C++ programming and other things related to videogames

carreras_alexadre.jpg

BACKGROUND

CONTRIBUTION

As already mentioned I was a programmer, specifically in charge of physics, enemies, artificial intelligence and particles along with some teammates such as Allen, Brandon, Ali and AlbertR. Within the programmer we had a great communication that helped us to help each other if needed and adapt quickly to new tasks so the workflow doesn’t slow down or get interrupted. Here is what I have done during this project:

Physics:

Along with Ali, we implemented the physics in the Wiwa engine in order to start developing the game. We implemented the Bullet 3D library. However once we were going to finish the dynamic physics stopped working so we changed the approach to a kinematic kind of physics manually implemented. Long story short, we use the Bullet 3D for everything but the physical calculations in runtime.

Enemies:

Once the Physics implementation was nearly over, I moved to create an AI movement system that is made from 2 main systems. The Agents and the Pathfinding Manager. Initially that was the approach. After getting to a bottleneck Ali stepped in and with lots of effort we were able to create the first enemy. After creating the Ranged enemy, we found that the performance of the A* algorithm was not optimized enough.

So Albert R. joined the team. Ali implemented the Recast & Detour library while Albert and I were implementing more enemies. I personally created the Boss Ultron with his behavior and  3 base attacks, the Cluster Bullet, the Bullet Storm and the Laser Beam to later add the Rain projectile attack first itteration.

At the same time, multiple bugs were solved such as agent rotation and misbehaviors of the ranged enemy. Then the scrum group focused on polishing the enemies behaviors while Albert focused on the boss. Multiple tweeks were made thanks to the feedback given during the multiple playtests, as well as visual improvements such as new textures and animations.

Particles:

So when the enemies were nearly over I stepped into the Particle scrum group to help end the list of particles that were missing. In this period i made multiple particles such as: the abduction of the player, the bullet collisions on wall and on enemy/player, buff particle, crio tank glass, buff triggering and stars particles. More bugs have been solved, to finally release the game.

Albert Chica

Hello! I am Albert Chica, I’ve been working in different branches of this project, and I wish you like what we have created in such a short time.

What I really liked from a young age was fantasy books and novels. I liked reading and discovering new worlds and characters along the narrative plots the author had created. After getting to know a lot of writers I discovered the video game industry, and I fell in love as I discovered various games with amazing development and unique worlds.

I don’t have an amazing background of video games played nor a lot of experience with them, at least not as much as some of the designers here, but I like the set of skills I got from other hobbies and hope to change some things. Unfortunately I had to work in areas I am not proficient at because of the lack of developers. I take it as a great experience anyway as I still developed some skills I might need in the future.

 

chica_albert.jpg

BACKGROUND

CONTRIBUTION

In the early stages I was lost on the engine as I learned from it, and could not help much. Later on, I worked on marketing and web development, where I worked with HTML and various web softwares such as Wix to create the webpage alongside some colleagues

Web development

I worked on a prototype with HTML, CSS and bootstrap before redesigning the web page in wix with Carlos Arnau. 

Victor Falcon

Hey, I’m Víctor, I love game design and programming. For me, this was the first time doing a major coding and lead role, it has been a gratifying experience and a pleasure to work with my colleagues in order to achieve the final result of this project.

About me:
I’m Víctor, making games has been always my dream. I started playing games as a child and I was always amazed at how they pushed the CG technology forward. Since then I’ve always wanted to work with computers.

Project III has become one of the most illuminating yet intense projects I've experienced so far. In taking the role of Lead Programmer, I've worked on many of my existing skills as well as new ones I didn't know I would need beforehand. As such, I think, while mentally taxing, it has been necessary in order to ensure what place in the industry I belong.

Hard skills:
Programming languages: C/C++, C#, Dart, Javascript, Unreal Blueprints
Frameworks: Flutter, Unreal Engine, Unity
Tools: Obsidian, Photoshop, Illustrator, Figma
Backends: Firebase


Soft skills:
Communication
Leadership
Thirst of knowledge
Problem-solving


Experience:
Unity teacher at Lifecole
Unreal developer intern at 2AwesomeStudio (porting team)

 

falcon_victor.jpg

BACKGROUND

Project Overview


I had the role of Lead Programmer and my job as a leader was to organize the necessary tasks and distribute them to the rest of the team. I had to ensure that the general vision of the project from a technological point of view was being accomplished. However, we had a lot of work to do and not that much time so apart from leading I also coded as much as I could and also helped the team when they were stuck on some feature.

Team management and logistical support


Like my other lead colleagues, I have been in charge of the organization of the members' weekly tasks, scrum team check-ups, and problem-solving. I've also been the main spokesperson & representative during the daily administrative meetings in which we checked their progress, weekly organization & adaptation to the circumstances.
My personal objective was to make the team collaborate and become really close together. I wanted to be a good leader and collaborate with each other to make a great project.

 

Base engine


The base engine that we used to develop the project was Wiwa engine, which Pablo Llorente and myself originally developed. This base engine provided all the basic features plus an audio integration with Wwise that Pablo made a shader system made by myself, and a C# scripting system made by both.

Lights


The light system of the engine was developed all by myself. Firstly the light was made using the Bling-Phong model and then I made a toon shader to fit the art style of the game. In the end, we had directional and point lights and made the rendering process as optimized as possible without using any advance rendering techniques such as forward or deferred rendering.

Shadow mapping


The shadows of the engine were developed all by myself. They are just simple shadow maps without any type of advanced features such as cascade.

Player controller and behavior


I collaborated with the movement and player actions. I was in charge to make both characters of the game Rocket and Star-Lord. Implement the movement and shooting mechanics.
I’ve also helped make the character inventory system and helped with the behavior of various items in the game.

Game loop


The roguelike genre always implies some type of random generation of the player runs. So we had to make that happen. All the game loop had to be generated and tracked while playing the game. We took care of that providing the necessary information to fulfill the requirements of the design team

Engine improvements


Multiple times during the development there were features that were not defined per-se in the scope of the Milestones but were necessary either to improve the User experience of the engine, to help the designers or programmers while using the engine, or to fix some issues inside the engine.

General help


I helped people in general when they had issues with coding and engine features and taught the team along with Pablo how the structure and the code of Wiwa worked.

UI rework


Along with Anna Metreveli, we designed a new UI for the game. I was in charge of the design and general look and feel of the HUD and menus. I took a simplistic but appealing and stylized approach similar to Persona 5.

Ali Hassan Shahid

Hello there, my name's Ali and I have been contributing to both the game and the engine during the development of Guardians of the Galaxy from Pixel Playground. It has been a rich experience to work with such a large team and actually get the game done by the end of it. I have observed a personal development and a skills development of source code, conflicts and structure management.

Since young I have had a lot of curiosity about computers, that is my starting point of the journey, it helped me learn some things about why and how of some things. When I started the programming journey, it felt amazing, it was what I wanted to dedicate my life to. That same curiosity is the engine of the desire I have for learning things, learning is all I want to do and never stop learning.

 

In game development I found a place where I could connect with people and create products that allow people to socialize, to have fun and that for me is key. 

hassan_ali.jpg

BACKGROUND

CONTRIBUTION

During the development process, I maintained the role of Programmer. During the engine development previous to the game I had been induced with the task of adding the physics engine. After the start of the game I had been assigned the task of adding an optimal navigation system and later on the behavior of some enemies.

Physics Engine

 

 


Implementation of the physics engine into the Wiwa Engine, I had previously integrated the bullet physics library into my personal engine. After first implementing the system into the current engine, some features like Rigid Bodies physics started to fail and give bugs due to the nature of the engine structure (related with builds into .dll).

The solution we came up with was to get rid of rigid bodies as the game didn’t need complex physics and collision, so we decided to just add the Bullet physics collision library. I added a custom contact resolver and a system of callbacks of collision events and trigger collisions events.

AI Navigation System


Briefly after implementing a custom solution that used A* pathfinding, we found optimization problems. The solution we came up with was to implement Recast and Detour and create our own navigation system that used this library.

I implemented the system and gave it a form and face closest as possible to the unity’s solution, to favor easy integration and use.

Enemies Behavior


Me together with other people in the enemies scrum group like Alexandre Carreras and Albert Ramisa contributed to the enemies behavior. I contributed to the enemies like the Phalanx Melee, Phalanx Ranged, Subjugator.

I also built the tools that allowed designers to directly balance enemy statistics and game loop features without needing a programmer with them to do it.

I also built the tools that allowed designers to directly balance enemy statistics and game loop features without needing a programmer with them to do it.

Game loop


With Victor Falcon, through a game state manager we made the game loop. And the gameplay features that controlled the events.

Player Abilities


I made a pair of player abilities. Starlord’s ultimate and Yondu's Fin ability.

Pablo Llorente

Hello, my name is Pablo, I am one of the programmers in this amazing project. It has been a long journey and I think we have all learned a lot during the development of this game. I personally enjoyed working in improving the engine, as low-level programming and optimizing is what I like the most.

My first touch with programming was in a 1 month course about C programming when I was 16 years old. At that moment, I realized that it’s what I wanted to do and focused on following this long journey that I haven’t yet finished. I did a SMX course and then a DAM-viod course (as well as other online courses at the same time) before entering UPC.

I have always liked playing video games, so I decided I wanted to be a video game developer. My goal is to become a professional developer and create amazing games with a team. My biggest motivation is to create cool games that everyone likes to play.

After some time programming, I realized I like doing code optimizations, so that’s what I focused on in this project. I am proud of the tasks I have achieved during this project, which helped my team to have an easier development and speed up the development process.

 

llorente_pablo.jpg

BACKGROUND

CONTRIBUTION

My role was to do programming in the development team, specifically working doing engine tasks, such as fixing bugs, adding stuff and optimizing. I was also put in general development support, along with Victor, helping every developer who needed help with their tasks. For this reason, I contributed with my own tasks and helped with many others.

Reflection system

 


A little reflection system using macros, which build classes that store the structure of the type, that includes classes, structs, functions and enumerators.

Data-oriented ECS

 


I implemented the gameobject hierarchy in our engine, using a data-oriented approach for an ECS design. It stands for Entity Component System where Entity is an identifier, Component is plain data and System is the logic to be applied to the data. Component data is memory aligned, making the access to the data as fast as possible.

Game assembly

 


To create the game’s logic while the editor is running, I created a separate project which includes the engine dll. This project is used to create additional functions, components, classes and systems which are reflected using the reflection system. Then, they are retrieved from the resulting game dll and loaded into the engine at runtime, allowing for a hot-reload.

Game build

 


For the game build, I created another separate project that contains the specific configuration needed for the game to run, as well as a batch script that copies the needed files from the project and compiles the game project into the build folder, making it ready to distribute.

Serialization

 


With the help of the reflection system, it was made pretty easy to serialize pretty much anything. So I worked in serializing the game scenes and entities, which let us make prefabricated entity objects to be loaded at any time.

Custom data format

 


Translate resource files into our custom data format, those are:

  • .fbx to .wimesh

  • .png, .jpg, .tga to .dds (external library gli)

  • .wav to .bank (external library Wwise)

  • .wishader

  • .wimaterial

Resource management

 


For the management of the resources, I created a manager class that controls all the resources that are loaded/unloaded through the scene. As well as importing them into our custom data format, with the help of Victor.

Scene managing


I made a SceneManager and Scene class to control the game loop. That includes states in which scenes are loading, paused or unloading. As well as the serializing functions for scenes.

Multi-threading


I added multithreading to the scene loading, controlling opengl contexts in order to load stuff in different threads as well as letting an animation of a loading screen to be played.

2D Instance rendering


For the 2D rendering, I made an instance rendering class which manages all the sprite data and creates new rendering spaces when the maximum of textures is reached. This allows all the user interface and HUD to be drawn in two or three draw calls, as they are drawn together at once. This class helped with the development of the GuiManager made by Alejandro and DialogManager made by Alvaro to be much easier.

Frame buffer and shader


Small frame buffer and shader classes so we can draw into them and load shader programs, respectively. Custom frame buffers allow for a better control on what is being drawn in the main window. This was also used by Victor to make a shader and material pipeline.

Camera management


In the game, we need cameras to be manipulated as we want. For this, I created a Camera and CameraManager class which controls the rendering for the cameras, and specifies which camera is drawn into the main window. For this, cameras have their own framebuffer, which also allows for post-processing effects.

Audio system

 

 


To implement advanced audio in our engine, I integrated Wwise. All the control of the audios is done through a manager class called Audio which plays, stops and pauses events. I also configured callbacks so we know when events are finished. Then, I made a panel that allows the user to load Wwise projects, banks and test sound events.
Later, Allen expanded this implementation further.

Animation system

 


For the game, we needed an advanced animation system which allowed partial blending of animations. At first, Allen worked on creating an animation system from scratch, but it became too difficult, so I worked in integrating an animation library called ozz. To make the configuration of animations easier, I created an animator class which handled all the animation types and the transitions between them, allowing me to configure everything as needed. I also added key-framed animation which executes functions in a given frame time. All the animations and animators are configured through an animator panel that I made with ImGui.

Alejandro Martin

Hi, my name is Alejandro, I’m a programmer who has been developing the engine and the game alongside my other peers. This project has allowed me to gain a lot of knowledge related to game and engine development, and I have polished a lot of skills through the development process.

I have always loved video games and wanted to work in the industry. I was always wondering how different game mechanics were made and how to start developing them myself.
Once I started in this degree, I decided that coding was the aspect of game development that I wanted to focus on, alongside my passion for teaching.
Right now I work as a game developer teacher at Coding Giants and even though we have come a long way our journey in the video game industry has taken its first big step.

 

martin_alejandro.jpg

BACKGROUND

CONTRIBUTION

Before the development of the game itself, I worked in the creation of the UI module and through the development I kept working and re-iterating onto that module to add all the specific necessities of the game.
Later on the development I also worked in other scrums such as the ones related to the Player,Items and Progression.

Here are all the tasks that I have taken part of, it is worth taking into account that I did not develop all the modules by myself, it was a collaborative work between the developers of the group.

  • UI module creation: I created the whole UI module, and its interactions within the engine. I also had help from other students to implement different aspects of the module such as the 2D rendering

    • Basic UI systems (buttons,sliders,checkboxes,...)

    • Text rendering

    • Video rendering

    • UI animations (loopable and step by step)

  • Inventory, Items, Player

    • Passives,Actives,Buffs,consumables

      • Worked on the mechanics of most of the items and abilities

    • Inventory manager

      • Worked on serialization of inventory
         

  • Achievements and progression

    • Howard’s shop

      • Created an achievements system to implement different unlockables for the game, this feature is still dull as it was something implemented in the last deliveries.

  • General bug fixing

    • As a member of the development team I worked on bug solving when needed, mostly the critical days such as the delivery days.

  • Game UI scripting

    • All scripts related to the UI inside of the game

      • Including timers for abilities, different pop ups throughout the game and things such as the waves counter and other objects that improve the game feel tremendously.

Alvaro Milla

Hi, I’m Álvaro. I’m an enthusiast of videogames who enjoy not only playing but also making them. I always try my best to carry out the highest quality possible projects and put insane dedication to make them stand out from the others. I may appear a bit sleepy at first glance but I do actually have lots of energy to work on videogame projects and see how far I can get.

I entered the world of videogames when I was 10 but it wasn’t until I was 14 that I started enrolling in the design and development of videogames by creating my first ever mod. It was then that I clearly saw I wanted to work in the videogame industry and here I am now on my way studying in this career.

What I enjoy the most about making videogames is designing and building the game’s maps but also coding how things should behave in the world. However, since we were in shortage of developers in the project, more specifically to make the engine, I was put to code some systems and managers for it. Although not being the development part I have most experience and focus on, I did actually enjoy pushing myself to the limits to make a robust working piece of what would be the tool to make the actual game, not to mention all the new knowledge gathered during the process.

It has been an absolute pleasure working on this project and simulating how the process would be in an actual company and look forward to repeat this journey on future projects.

 

milla_alvaro.jpg

BACKGROUND

CONTRIBUTION

My role in this project has been an actual challenge for me since I had to develop systems and managers in the engine to be used to create the game, which is the development part I've always had less practice in. Nevertheless, I did succeed in my task and proudly present my main and robust contribution: the Dialog Manager, accompanied by the Dialog Event Manager, its editor panel, and a set of functionality systems for those I will talk about later.

Dialog Manager

The Dialog Manager is an engine module in charge, as its name suggests, of managing all the dialogs for the game. This manager allows the creation and the later editing and customization of dialogs via its editor panel as well as activating and deactivating them automatically or manually if preferred. It also allows playing custom events when a dialog finishes together with other features and functionalities explained coming up next.

Wrapped text

Text will appear wrapped around the borders and centered no matter what you write and the number of lines your text has although it is recommended to have a maximum of 4. You can also force line jumping by writing the “|” character on the bubble text box.

Conversation randomizer

image17.png
image20.png
image19.png

Text will appear wrapped around the borders and centered no matter what you write and the number of lines your text has although it is recommended to have a maximum of 4. You can also force line jumping by writing the “|” character on the bubble text box.

JSON Saving

All conversations save into a JSON file that can be easily stored and copied.

Dialog Event Manager

It's a plugin for the Dialog Manager. It triggers custom made events after a conversation has ended if specified from the Dialog Editor Panel, like for example this ability choice menu from the picture above.

Dialog Editor Panel

Here is where absolutely all the features from the Dialog Manager can be accessed and set. Here is an overview of it.

Nodes

It's the core of all dialogs. It allows to input the text that will appear on the dialog bubbles. You can create more than one node in case not all the text you want to write for that conversation fits in a single bubble. As already mentioned before, the text wraps and centers itself automatically and you can force a line jump by using the “|” character.

You can also write the name of an audio event to be played during that node for more customization.

Every time you make a change in a node you have to save it, for that reason an “(unsaved*)” tag will appear next to the node name as visual feedback to remind that to you.

Image Settings

Allows you to change the image of the bubble where the text will appear and the talking character.

Conversation Name

It's the tag that will be used to trigger the conversations and also a way for the user to identify them.

Character Position

image3.png
image2.png

Sets whether the character will appear talking from the right or from the left. It will also change the position of the bubble to the top part of the screen.

Conversation Groups and Randomization

Stacks the specified set of conversations of a group and plays them one after the other in order. If randomization is checked, it will randomly choose one of those conversations and just play that one.

Character Detector

If this option is enabled, the Dialog Manager will override the selected character and bubble images chosen for the specific conversation by the current character’s default set of images. It will also internally add an extension (not visible on the editor panel) to the conversation name tag during runtime to redirect to the correct conversation text, so every character can have its own personalized appearance and text on a specific conversation. It does the same for audio events.

Custom Events

Lets you write the name of a predefined custom event to trigger after the conversation has ended for ultimate dialog customization.

Dialogs System

Those systems serve for the Dialog Manager to work and to add new functionalities to how the conversations run.

NPC System

Allows to have a physical NPC on the scene that you can approach and talk to.

Forced Dialog System

Forces the triggering of a specific conversation without needing an NPC whenever you want.

Character Sensitive Dialog System

Used to ensure that the character is correctly detected in case you marked the option for it on the editor panel.

One Time Dialog System

Makes a conversation able to only be played once.

Albert Ramisa

Hi, I’m Albert, and I have been part of the Programming Team during the production of Guardians of the Galaxy: Battle for the Universe. It has been such an amazing journey to work with a large team for the first time, improving my technical and communication skills throughout the process. Pushing the limits every time in order to have an experience that is fun and entertaining, and that we as a team could be proud of.

I have been playing games since I was little, first starting with classical board games such as Uno, Chess, Cluedo or Monopoly. As I grew older, I continued playing, and cultivating a fascinating interest on how to transmit the fun I had during all my life when playing games to other people. So, I could say that I have two great passions, playing and creating video games, always trying to make the player feel the protagonist of their own story.
In parallel, I have an affection for gameplay programming, reveling in the construction of elaborate systems and witnessing those same mechanisms become alive and into motion, creating a logical apparatus that attains the desired objective. Fascinated by those captivating notions, such as the Design and Development, I decided to achieve them thoroughly.

ramisa_albert.jpg

BACKGROUND

CONTRIBUTION

As a programmer I mostly worked on the enemies scrum groups, implementing two different types of enemies, the subjugator and the sentinel and the mechanic of the explosive barrel prop. Also worked very hard on the overall implementation of the Boss Ultron, working closely with the enemies designer, Juan Fernando, in the creation and polishing of the behavior and pace of the movement, attacks and states such as the second phase or death.
Finally, I have also worked on the first iteration of the particle system, which was later replaced due to limitations of the module. Then after my work goals were achieved on the enemy’s part of the project, I returned to the VFX, creating a set of new particles.

Sentinel:


As explained before I was a part of the enemy’s scrum group, one of my first tasks there was implementing the Sentinel. It is a quite unique type of enemy inside the game which it’s main mechanic is to move to the player and explode once it detects it has been enough time and distance close to the player. The Sentinel explosion also damages other enemies, so as the enemy’s designer Juan Fernando said, it can be even more interesting gameplay wise.

Subjugator:


My second enemy implementation was the Subjugator, which is the hardest enemy we can find in the game. That enemy has a powerful attack that consists of shooting four bullets, one from every arm it has, and every time he shoots the bullets will change the direction, making it harder for the player to evade his attack.
The Subjugator has a variant called Chief Subjugator which is much more stronger, with a different attack pattern. In addition to the base attack of the normal Subjugator, it will also shoot zig zag bullets, that will start as normal bullets and after some time they will start spinning with an increasing amplitude until a certain limit. In total for the Chief Subjugator we can find four pattern attacks, two with the normal bullets and two with the spinning ones.

Explosive Barrel:


During this project I was also tasked to implement the mechanic of the Explosive Barrels, where once they are shot by the player they explode damaging all the creatures in their surroundings, being the player itself or the different enemies.

barrel.gif

Ultron (Final Boss):


The Ultron as specified in the title is the final boss of our game, and it was quite a challenge to make. A lot of love and effort was put into the creation of that particular enemy. I worked on the creation of his attacks, states such as the second phase, the death, and overall polishing of his behavior in order to make it perfectly enjoyable. I also made some particles for the attacks and behaviors of Ultron as well as communicating with the final boss animators to have the right animations. And once done, implemented into the game with the correct timing for the gameplay.

Attacks on the First Phase:

Bulletstorm:

bulletstorm.gif

Dash:

dash.gif

Smash:

smash.gif

Cluster Bullets:

cluster.gif

Second Phase Exclusive Attacks:

Rain Projectile:

rainProjectile.gif

Laser Beam:

laserbeam.gif

Movement Attacks:

First Ray Attack:

ray1.gif

Second Ray Attack:

ray2.gif

Splash and Double Cluster:

clusterMovement.gif

Transition Second Phase:

regen.gif

Death:

death.gif

VFX:

 

I have also contributed to the visual effects team, jointly with Allen Bateman and Brandon Arandia. There I created a set of new particles, mostly related to the Boss Ultron, giving a more complete experience to the final challenge, that is the last fight.

bottom of page