Feline Good

2,5D platformer in 1920s New Orleans

 

Engine & Tools
Unreal 4.7, Visual Studio 2013, SourceTree, GIT, Slack, Trello and SCRUM method
Programming Language
C++
Supported platforms
PC / Windows
Context
Final year project of a master degree in Gamagora Lyon2 University
Credits
Follow this link to meet the wonderful Team 
PC build
Download, unzip and enjoy !
Scarlett
Scarlett, Muse of Rembrandt

 

Rembrandt
Rembrandt, hero of the Feline Good adventures

 

Rembrandt
Rorschcat, the weird friend of Rembrandt

 

Logo Feline Good

Feline Good is a project developed by a team of 14 people in 3 months :
4 Graphic Designers, 3 Programmers (including me !), 6 Game Designers and 1 Sound Designer.
End of Scrum
Scrum papers make good memories after the end of the project…
I was at the origin of this project, and 2 other ones were selected by the university after a selection over the course of several weeks.
I ended as Project Manager and Programmer and that was a wonderful (though exhausting ) experience !
Therefore, I had the heavy responsibility to keep this team of young people motivated and ready to work hard until the Gamagora Game Show that concluded the adventure !
It is worth noticing that we organized the job using SCRUM management with Sprints lasting a week :
We defined a Product Backlogs, listed the features, defined priorities, conducted (epic) retrospectives, made playtests, and so on …
Bob Hermann and the Dog Nation
Bob Hermann and the Dog Nation
In Feline Good, you are playing a cat in the 1920s New Orleans : Rembrandt is an alley cat, smart and proud, and he wants to rule over the neighbourhood for the sake of Scarlett, a pretty angora kitten 
To achieve his goal, he will be helped by his friend Rorschcat, but he’ll have to face powerful enemies as well.
First and foremost, the Dog Nation is a band of hounds led by Bob Hermann, a vicious doberman. They’re stalking the streets between the buildings and Rembrandt will have to sneak past them to reach his goals.
Then come the Catsuki, a secret organisation of ugly and hairless cats in Cattaïr‘s pay !

 

Rembrandt‘s ultimate goal is to overthrow the leaders of those 2 organisations.
For that purpose, he will have to meet Scarlett, Rorschcat and Birdie Harry (the fat canary ^^), talk to them and discover the weaknesses of his enemies.
Only then will he succeed in defeating them !
Cattaïr and the Catsuki
Cattaïr and the Catsuki
Feline Good is a side-view platformer game with infiltration mechanics and a bunch of other features
  • Rembrandt can jump over balconies and realise high jumps until he reaches the roofs
  • When crossing a street, he can turn around a corner : The camera is rotating to reach a new angle ! (Please note that this was done before Assassins Creed Chronicles were released and where you can find the same feature !)
  • Meeting another cat will result in a cartoon-like fight that can be resolved with Quick Time Event mechanics.
    But Dogs are tougher and they will only be defeated by using a pet cone (the Cone of Shame )
  • Fights can be avoided by jumping in a trash or an opened window and sneaking past enemies.
    Pets can be lured away by throwing them a ball or they can be knocked out by pushing a flower pot over their head.
  • The player can meet non-player characters and talk to them (or even threaten them in the case of Birdie Harry)
  • Last but not least, Rembrandt can activate his Smell Sense : That will enhance the field of view, modify the display of the scene, and highlight traps and points of interest !
    Okay… this is more or less like the Eagle Vision… 
To make a long story short, the best thing is to look to the game trailer :

Feline Good Official Trailer
When compared to Unity, Unreal has the reputation of being more difficult to control. It is also supposed to be more powerful, especially when speaking about 3D games.
I believe both arguments are valid to some extent, and I would like to share my feelings about moving from one engine to the other.
I’m not going into details about the Editor part, because it’s just a question of habit : Placing objects in the scene, tweaking parameters, creating resources… It takes time in Unreal to figure out how to do it, but it takes time in Unity when you’re not familiar with the editor too.

Blueprints are fun…

In my opinion, the first real difference between the 2 products is about Blueprints in Unreal that give users the possibility to make some visual scripting.
This is somewhat ironic to think that Unreal is supposed to be more complicated than Unity whereas you can make your own game with it even if you don’t known anything about C++ !
Unreal Blueprint
An example of Unreal Blueprint for Feline Good
Yes, Blueprints are very powerful and you can probably make a whole game (although not too complicated) thanks to it, without ever writing a single line of code. However I find it more useful for Game Designers and a little frustrating when you are a Programmer… mainly because it can quickly go awry with spaghetti-like connections between boxes if you’re not absolutely rigorous in your design.
(Okay, we could say the same thing about pure code).

Unreal Splash Screen

Nevertheless, we used them to develop a lot of features because it was comfortable for Game Designers to make prototypes, even if we (programmers) have had to code them anew from scratch when we wanted something more robust or just simpler. Sometimes, it was just necessary to make a simple class that a designer could use in a Blueprint.
Yet we discovered a problematic issue during the project : we met troubles when using source control with blueprint assets…
Maybe it has been corrected since (I know about Perforce) but it caused a lot of losses back then.

… but Coding is Awesome !

First of all, C++ in Unreal is not exactly like common C++… It is more like an extension of C++ using macros like UCLASS(), UFUNCTION(), UPROPERTY(), UINTERFACE() or USTRUCT().
Those macros can be declared with metadata and they allow the engine to fully manage those classes (Garbage collecting among other things) and to display/edit things within the Editor.
Unreal Base Class
A class generated by UE4 Class Wizard
There are some other differences and It can be confusing (especially if you’re used to code in C# in Unity… but this is another story), but you will quickly find similarities with Unity
(and with other engines too !).
Here are a few benchmarks to avoid getting lost :
UNITY UNREAL
GameObjects are the base objects that can be placed in a scene. The GameObject class is inherited from Object which is the base class for an object to be referenced by the engine Actors are the base objects that can be placed in a scene. The AActor class is inherited from UObject (which is in turn inherited from 2 other classes)
Monobehaviour is the base class for most scripts you want to attach to a GameObject. It is inherited from Component and it implements Start(), Update(), OnDisable() among other methods (the most commonly used ones). UActorComponent is used to define a behavior that you will attach to an Actor. It is inherited from UObject and it implements BeginPlay(), Tick() or EndPlay() that are equivalents.
When you want to edit a field in the editor, you make it Public or you use the [SerializeField] tag. You can achieve the same result with the UPROPERTY() macro.
I won’t linger on Unreal Scripting because this domain is REALLY HUUUGE (but well documented too).
The API documentation size is maybe another difference between the 2 engines : UE4 is doing a large use of OOP inheritance and it’s not uncommon for a class to get several hundred of inherited children in the hierarchy !
This is a key point IMO : Once you’ve understood the logic behind this, you know where to look for a particular class and it becomes much more easier to achieve a specific goal
As a conclusion, I would say that UE4 is really as powerful as it seems because it allows Programmers to create or customize nearly everything in the engine. That’s also the reason why it appears to be complicated.
Most of all, it stands on a robust architecture built with smart naming conventions !
Feel no hesitation !
Download this build (Sorry, PC only !) and help Rembrandt to become the Lord of the Streets !
Feline Good Map
The map of the neighborhood as you can find it in the game