Well, I am no longer very angry at Epic devs who have not implemented a user-friendly unused asset delete anymore, because, as one of my colleagues always says, "Don't sweat the petty stuff and don't pet the sweaty stuff". Also, I am making progress, and my game is almost ready. Well, it will have to be, because the deadline is in a couple of hours. See you all at the finish line :)
A Case of Murder
A downloadable game for Windows
This is my entry for the Spring #ue4jam.
Although I do not have a lot of time to work on it, I am giving it the best shot I can.
The idea for "A Case of Murder" is one that I have been wanting to implement for a very long time, although only with this game jam and the theme being incorporatable into this game, did I really sit down and give it some thought. I have always wanted to write a game that is not a shooter of any kind, as I am so sick of almost every game ever being little more than a shooter. I also have fond memories of playing 'Super Sleuth' in DOS when I was a boy; and so the theme of this game, which is pretty much my dream game theme, also became the game that I decided to create for this UE4 game jam - a detective game.
Click download now to get access to the following files:
Log in with itch.io to leave a comment.
PS Tonight I am finishing my entry. I have to implement Interview and Accuse functionality, I have to implement making the murderer's alibi not match anyone else's, and I have to implement a dead NPC and a win/lose screen. With all my delete woes I will likely only have time left to make this a barely playable game, but if I am lucky I will have time to make the level nicer.
Although I had a splitting headache last night, I worked on my entry again for 4 hours. But I made no progress whatsoever because it was 4 hours of trying to delete unused assets to bring the size down. The UE4 editor shows a dialog when you delete assets, and that dialog shows when an asset has references. Cool. But it is not really useful in terms of the delete operation because it does not allow you to just right-click on there referenced assets and exclude them from the delete. No, you have to cancel out of the delete dialog, find the assets to delete again and unselect the in-use asset, delete the selected assets again, wait for the processing to complete (which can take some time), and only then delete all unused assets. This should not be that difficult. Not in Unreal Engine editor, the editor of the best game engine in the world. Not in version 4.22.
So I do not have time for this, so I will just upload my 5GB game. Nevermind that I would likely have qualified for the 'best sub-100MB game's category too, had UE4 Editor handled asset deletion in a more professional way.
As sure as I am that UE4 is the best game engine in the world today, and as happy as I a with it, I must say that I am so disappointed in UE4 because I lost HOURS yesterday night with the editor crashing again and again simply because I wanted to delete unused assets to make my game deploy smaller. I had a lot of assets in my project, as I like to have it all available when I play with ideas. But, having created the main level I wanted, I deleted all the unused content. Oh no wait - I TRIED to delete them, every time I tried to delete various assets, like some blueprints from the Zen Garden project and other things like static meshes etc that I had added to my project, the editor crashed.
I wanted to clean up my project and make a small-as-possible deployment last night night with itch.io's butler - but with the incessant crashes, I got nowhere.
My project is multiple GIGS big now, I cannot delete anything to make it smaller, I lost valuable time trying the simple operation of deleting UNUSED assets... I am not very happy right now.
One would think that 'remove unused assets' would anyway be a basic operation of a world-class engine like UE4. It must be simple to look at all level files, find all references, and ten delete all referenced assets, ad doing so without crashing the whole editor.
If I release a 5GB+ game for this game jam, it is not my fault Epic.
A Quick Tour of the Rooms in my small gameplay level. I doubt that I will have time to make the level really nice like I imagine it should look like (multiple levels, inside a closed house but with an 'obstacle fading' effect.
Anyhooo, here are the rooms in the house where a killer lurks.
The placement of the characters are random, and more importantly, the alibis are generated randomly too, so you can re-play the level and see the different Epic-inspired-people's alibis change.
I have been working really hard this weekend because I basically have only this weekend to work on this, because I work late and get home late Mondays to Fridays... but I think my hard work is paying off! Things are coming together.
Another dev video. Working on generating random alibis for NPCs.
A short dev video showing me adding the random killer selection.
Here is a quick video that shows the basic idea that I wanted to go for, which I think is working quite nicely for this type of game.
I don't know if there is a dedicated 'devlog' on itch.io, so for now I will just use comments to show some of my development progress.
The idea of 'A Case of Murder' is that you are a detective, it is not specified that you are a private detective but I tend towards that myself, and you are called to a scene of a murder. The murder took place in a house, and the game starts with you having just arrived outside. The police that already arrived think they have the crime solved; they have a suspect that literally has blood on their hands, and they make no secret of their assumption that they have this killer caught.
But, being the ace detective that you are, you are not so sure. In your years of doing this job, you have learned that evidence might seem to point to one conclusion, but there is always the other side of the coin - a different interpretation, a different way of conducting an investigation than just a quick glance and then drawing quick conclusions; no, there is the right way, the methodical way of the true detective. Your way.
You proceed into the house and start your investigation. In the house you will find potential murder weapons, you will find suspects, and if you have your detective's notebook and your wits about you, you may even find the truth...
The First Few Hours
I decided early on that I want to create most of the game logic in C++ rather than in Blueprints. This is because I want a dynamic system of 'murder details' generation, and this might be a little unwieldy to do in Blueprints alone. I have never really worked with UE4's 'variety' of C++ (meaning the types and metadata that UE4 requires), but I know standard C++ well so I decided that this jam would be an ideal opportunity for me to learn.
I started by creating a few classes, including Manager (an Actor), NonPlayerCharacter (a UObject), Weapon (UObject), and MurderDetails (UObject). Manager would be the overall game manager responsible for bringing everything together, and for that reason I added function GenerateRandomMurderDetails (which populates a MurderDetails object by calling other functions PickVictim, PickMurderWeapon, PickKiller, AssignAlibis).
I also created some blueprints for 'areas', and these would be rooms, like 'Kitchen', 'Bedroom', 'Study', 'Dining Room'. This Area blueprint manage a few things, like a Name, a Collision Box,and a Camera. The Camera in each area is there to switch to a fixed camera once the player character enters, that is appropriate to seeing the area and finding clues.
With these blueprints and classes done, I started laying out a simple house.
Below is a screenshot of my first attempt, which is still in progress. I am keeping this simple and minimalistic, because I can at least play it now, and I want to move on to adding the NPC characters and doing the interactions with them and potential murder weapons. If I have enough time, when the game is basically playable, I will revisit the house/level design.
And below is an in-game screenshot, showing the player entering the Foyer.
That's it for now!