Project Felix:
Introduction:
Project Felix is a game that me and @MustacheThatsGreen is currently working. The game is about a cat named Felix (Protagonist), and his anxiety Helix, who has taken a form. He also wants to find a way to enter a train, so he can reach his mother. In the images, there is concept art and sprites, but the title screen is used for the background for the songs/themes. The art is created by created by @MustacheThatsGreen.
Music:
Something that we're heavily focusing on, is the music. I've hired @MustacheThatsGreen because he was good at art, but the music he creates adds to the atmosphere to the level. We have almost every theme ready. The normal themes are based on the time of day, with the Fields theme sounding joyful and exciting, while the Camping theme sounds a bit eerie, because it's night time. The Demonic themes are used when you are with Helix, and you're working with him. It is a techno remix of the original themes. All of his music is on his YouTube channel, which I recommend you to subscribe if you like the themes, and all of theme will be on the Project Felix page on GameJolt. https://www.youtube.com/channel/UCg-4TqoiA5Ok4ZWLAzuFjeA(All of the music was made on Music Maker Steam.)
Gameplay:
The game is being made in the Unity 3D engine, with 2D aspects with it. It is also using the Universal Render Pipeline, using Shaders and to also get better lighting. I'm working hard to get the game to look as best as possible; this is also my first time using URP. There aren't a lot of gameplay mechanics yet, but Felix has the standard 3D person movement (except jumping and sprinting), can grab objects and save the position. More things will be added, when I think about a new Mechanic! đ
I want Project Felix to be playable on most modern PC, from the worst to best, I want a way for everyone to play. (Been thinking on a Switch/Xbox One/Mobile release).
Story:
Me and @MustacheThatsGreen haven't really thought about a lot of the story yet, but we want to be Project Felix to be a really good short story. @MustacheThatsGreen is working on the script, and I'll program the dialouge system.
Help:
Help would be really nice, and if you would like to support us, I will make an email to answer and to see your work. I currently don't have the money for paying people, so I'm not expecting weeks and months of hard work. But, there is one thing I really need help with. I've completed working on the save system, but only the save position part. I want the script to save the scene as well. (C#, also using Unity 2019.3.8f) The code:
PlayerData
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[System.Serializable]
public class PlayerData
{
public int level;
public float[] position;
public PlayerData(Player player)
{
level = player.level;
position = new float[3];
position[0] = player.transform.position.x;
position[1] = player.transform.position.y;
position[2] = player.transform.position.z;
}
}
Player
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.SceneManagement;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[System.Serializable]
public class Player : MonoBehaviour
{
public int level = SceneManager.GetActiveScene().buildIndex;
public void SavePlayer()
{
SaveSystem.SavePlayer(this);
}
public void LoadPlayer()
{
PlayerData data = SaveSystem.LoadPlayer();
level = data.level;
Vector3 position;
position.x = data.position[0];
position.y = data.position[1];
position.z = data.position[2];
transform.position = position;
}
}
SaveSystem
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System.Runtime.Serialization.Formatters.Binary;
[System.Serializable]
public static class SaveSystem
{
public static void SavePlayer (Player player)
{
BinaryFormatter formatter = new BinaryFormatter();
string path = Application.persistentDataPath + "/player.fun";
FileStream stream = new FileStream(path, FileMode.Create);
PlayerData data = new PlayerData(player);
formatter.Serialize(stream, data);
stream.Close();
}
public static PlayerData LoadPlayer()
{
string path = Application.persistentDataPath + "/player.fun";
if (File.Exists(path))
{
BinaryFormatter formatter = new BinaryFormatter();
FileStream stream = new FileStream(path, FileMode.Open);
PlayerData data = formatter.Deserialize(stream) as PlayerData;
stream.Close();
return data;
}
else
{
Debug.LogError("Save file not found in" + path);
return null;
}
}
}
I want the level integer to be equal to the scene. If you could help me edit the script or help me write a new one using either PlayerPrefs, JSON or Binary Serialzation, that would be benefical to the game. Thank you! đ
Conclusion:
Thank you for reading this. Thank you if you have contributed to the game/helped us with many other things. If you want to follow and see the progress on the game, follow Project Felix, subscribe to our YouTube channels and follow @MustacheThatsGreen DeviantArt. https://www.youtube.com/channel/UCg-4TqoiA5Ok4ZWLAzuFjeA (Me) and https://www.youtube.com/channel/UCg-4TqoiA5Ok4ZWLAzuFjeA
https://www.deviantart.com/danielb0205 (@MustacheThatsGreen) Thank you for reading! đ (Also going to give out keys to some people when a playable build is available)
Project Felix 2.0 cover by @MustacheThatsGreen and Ghostly-Alienz on Deviant Art (https://www.deviantart.com/ghostly-alienz)
2 comments