Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Stupid Storys - Time traveling and hamsters

A topic by Umpfi created Aug 12, 2020 Views: 766 Replies: 13
Viewing posts 1 to 14
(1 edit) (+5)


Hi everybody, I am Umpfi.

It all started a year ago. As a hobby game programmer I wanted to try out how far I could get from scratch in one year. (Basically not completely from scratch, because I use MonoGame as base)

With a rough idea in my head I started planning for an editor. Of course there are already great programs like Unity or something similar, but I saw it more as a challenge.

Since I'm neither a professional graphic designer, musician nor author, the game may get a bit strange in these areas.

I grew up with the SNES version of Zelda. I love this game, so it's not surprising that I use a similar perspective.

I've been working on this game for a year and have finished the pure programming work. Graphics are all available in a basic version, scripting is finished. Only a big sound and ambience deficit is left.

So what is left to do now is polish, polish, polish...

In my devlog I will summarize the process weekly and also report about past experiences and developing the editor.

Scene from the game

Scene from the game


Screenshot of my SceneEditor

Screenshot of my SceneEditor
(+1)

Hello everyone,

one of the most basic things to decide is the data structure.

The first question I asked myself was: "I have two locations. One in front of the house and one inside. How do I store all this and how do I get from A to B?"

In my first approach, I had a big map where in one corner was location A and in another corner was location B. If you now enter the house, there is a teleport from A to B within the map. This was also a good implementation for this example, but not really scalable.  The number of different scenes would have required a huge map.

The next approach was to create a scene for each location. If you travel from location A to B, the player is simply moved to the other scene.

If you have loaded the scene before, this works without any delay. But here was the crux of the matter again. Loading everything completely takes several seconds. Since I am not a fan of loading times (and certainly not for such a game) they had to disappear into the background.

So the single scenes were combined in maps. Which scene goes into which map depended on how accessible it is. So if you travel to another city, the old city (without traveling back) is not so easily accessible and doesn't have to be in memory anymore. 

Data structure

Now only the transition was missing. Since there is a cutscene at the end of each act/map that drives the story forward, I decided to load the following map there. So when entering the cutscene a trigger is triggered, which causes the loading in the background of the next map. This takes only 5-20 seconds, but if you load everything at once it would add up very fast (apart from the increased memory consumption)

So when starting a new game, only the intro has to be loaded, which takes less than 5 seconds. This is an acceptable time for me. From there on the rest would be loaded in the background.

If you leave the game and resume the game, you might have to load a bigger map with several scenes. To make the waiting time (of about 20-30 seconds) a bit more bearable, I display some loading screen texts. This can be a "Heating coffee" for an office scene that is loaded up to "Fill coffins" for a cemetery scene. By reading the screen the player is a little more distracted and does not necessarily notice the waiting time.

Link to Devlog

 Your SceneEditor look like Game maker, i'm right? 

No, it is completely self written with Winforms/Monogame in C#.

Since I have never worked with GameMaker before, I can't tell you what it can do. But if I needed a feature for my game, I just added it.

Like the ParticleEditor for example:



And I can just add it in my Editor with one click:


Hi everybody,

I have created a small video about the SceneEditor I am using to build the Scenes.

To show you how it works, I create a little demo scene and walk you through the process.

Clippy is back!

Hi,

I was busy redesigning and adding more graphics this week.

At the moment I am working on the portal room. Changed some graphics added animations.

 It still needs some love though :)




Early this week I had a funny bug. The dart player in the bar kept playing even when you weren't there. 

The order "Throw a dart" was placed in the background the whole time (which is correct, since the NPCs should life their life, even if we are't around). However, the projectiles were only processed if the player changed to this scene. As a result, we had a whole bunch of darts in the room.


I changed the code, so the darts where only placed if it is the active scene.




From a test player, I have received the feedback that you could use some help if you are stuck. 

Who could do this job better than Clippy?

In the first version of Clippy, he will give you a hint where to go from there, depending on the location and state of the variables. He sometimes give you some usless advices, even if you dont asked him. So basically Clippy is doing Clippy stuff.

Walking sounds and interface update

Hi,

It's been a while since the last time, but I was busy and did stuff and things...



Graphic Updates

Updated some graphics and added some simple animations. Especially the barn looked more like three cows sitting at the bar :)

Also added some new bodyparts, so I can vary the look of the NPCs.

Also Clippy got some animations now, which will be played from time to time randomly.


Walking Sounds

I am still not 100% sure if I like it or not. But when characters move and you don't hear anything, it feels wrong. 

I have included a relatively simple first version of it, where a step sound is played when a character moves. At the moment the ground material is not taken into account and it is only roughly adapted to the speed of movement. There is still work to do.



Dialog-/Textbox

I have reworked the look and size of the Textbox. It is a little bit smaller now, so you can see the player character and the person he is talking to. (left: old; right: new)



Inventory

Also reworked the inventory. I didn't like the old red lumps anymore, which were just placeholders anyway. (left: old; right: new)

In the right screenshot you can see Clippy doing Clippy stuff.



Text scrolling sound

I don't know if you can imagine, what that means but when a character appears, it used to make a sound. Maybe I change the "Character sound" later but in this video you can see what I mean.

Settings and Sounds

Hi,

in the last weeks I worked on the settings menu (which should be available to the player before the game starts as well as ingame itself).


Sound settings 

I wanted to divide the sound into 2 different parts: ambient music and effects. So the player should be able to control both independently in volume.

I still have to check if I put ambient sounds (like birdsong) into the music category. Would probably make sense.


Full screen

The fullscreen mode was a bit tricky. The easiest way is to change the screen resolution. This will scale the whole image bigger. Worked quite well at first go.

But I preferred a borderless window, which is set to the screen resolution. This eliminates the annoying "resolution-changing-screen-blackness-moment".

The problem with the solution was that I could not simply scale the final result because of my engine structure, but had to use a scaling matrix throughout the entire render process.

If I would change the resolution, I would only allow more field of view, which is limited for a good reason.

But since you usually don't change the resolution every 5 minutes, I considered that you can live with the first alternative compared to the additional effort.

 But if I should design a new engine again, I would definitely spend more time on resolution and scaling.


Lock mouse

I added this feature because I hate in a full screen mode that my mouse can leave the application.

In window mode this makes less sense, of course. So I wanted to have it optional. Maybe I'll tie it directly to the fullscreen mode.


Swap mouse buttons

When you receive the following feedback from testers:

"I would expect to use the right mouse button for that" and from others "Right? What for? We do use the left mouse button", then you just make it configurable and make everyone happy.


Step sounds improvement 

I have improved the step sound feature I added in the last version. The sounds are now bound to the walking animation. Every time a foot touches the ground, a step sound is played. It still looks a bit stiff, but maybe some fine-tuning will help.

Apart from that I have now covered 4 different floorings:

  • Stone
  • Gras
  • Sand
  • Wood

For each of these backgrounds I have 5 different sound effects and they are played randomly (direct repetition excluded)

In the editor I can now simply drag a polygon to define where which flooring is.

Probably I will add the soundset for carpet. For that I will simply use Audacity to make the stone sound a bit duller.

In general, the preset Master volume for the step sounds is about 20%. It needs to be there, but should not be a present sound.


In this video you can see the progress on the step sounds:

"How is the game played" vs. "How did I assume it is played"

Hi,

this week I focused on "How is the game played" vs. "How did I assume it is played" (and bugfixing... there is always bugfixing...).


New Area

I took another look at some of the videos of "first time test runs". So the sessions in which the test persons do not know the puzzles and world yet. These are especially interesting because they show how the puzzles are perceived.

My "main quest" often was completely ignored and the player threw himself on other things, which seemed to be much more obvious, but are actually only needed later in the game.

To guide the player, I addded another zone to the main city and moved some key elements there. This area will only be released once you have started the "main quest".

This is how I prevent the experience: I do that, but I don't know why!

 I now have to find new tester which don't know anything about this game for a fresh feedback.


Step Sounds: Man vs. Chicken

I am quite happy with the result of the my step sounds. However, what didn't fit at all are sounds that don't cause humanoids.  A chicken for example has very small feet and therefore makes many small steps. But these were treated as if a human was stomping around like a madman.

The simplest but most effective solution was to simply lower the volume of the steps of non-humanoids. So you can hear many small steps, but at a suitable volume.


Throwing Objects

In the game you can throw smaller objects (which are intended for it!). For example in the tutorial you have to throw stones at bottles. So far you have picked up the object "stones" and could shoot at it like with a machine gun. I have now added the possibility to flag these objects as "Use Once" in my item editor. This removes the item from your inventory after use and you have to take a new one first.

Also added the default "use"-animation if you throw something.


New energy-saving bulbs for the city center

I changed the light color of the city lighting from white to a yellowish to orange color. This looks a bit more appropriate to the ambience and not as if LED lights are installed everywhere.

Urgs... graphics...

Hi,

at the moment it's going quite well and if nothing unforeseen happens, I can release the game in December.

Graphic Updates

Every free minute I have is currently spent on graphic updates of the game. When I started about a year ago, I had a different graphic style. But this style has changed over time and now I still have objects here and there with old graphics embedded in new ones.  Please don't forget, I am a programmer. I know there are a lot of talentent artists out there who could have done all the graphics better in less time.

Since I am currently reworking the cemetery, here are a few examples:

The objects on the left side were created about a year ago and were sufficient as placeholders for now.

Meanwhile I make a clean basic version of the gravestones and several variations. So that if I want to use an object more often, it will look a bit more different.

Ducks and Events

In addition to the graphics update, I'm still working on the fact that not everything looks so static anymore. For example, I animated the water and threw ducks on it.

This also includes events. They don't necessarily have to be part of the main story, but they help to breathe life into the world. I can't be more specific now, because I don't want to spoil ;)

Hey,

it's been a while since my last entry. But I was busy. 



The last content extension

I have added the last content to the game. Thats it! I am done! But this content had it again. Lots of details and coordinated sound effects.



Finalization Clippy 

I have completely reworked Clippy. Clippy now has different escalation levels. From "light hint to think about it yourself" to "ask captain obvious".

In addition once again variables refined to be able to give still more exact notes.



Fine Tuning

  1. Play Game
  2. Write down everything you notice
  3. Process list
  4. Repeat

I have now completed this cycle several times but now I can say that the game hast lost most of the flaws I was able to see. Flaws like clipping errors, missplaced items, NPCs running against a wall and so on.



Steam achievements

I have integrated the Steam API and have already built in some test successes. Everything has worked out wonderfully. There were some minor problems to use the C++ Api correctly under C#, but no impossible task.



Translation

I started translating the game from English to German. I also decided to translate the images. Since I almost got every text on images in a Photoshop file, I can simply swap the text.



Beta Tests After one last independent player has tested again, I'm ready to bring the game into the beta phase. In this phase I let friends and family test the game and get their feedback.

So far I have always watched every test live or via stream. Now I don't do that anymore, but increase the number of testers.



If all goes well, there will be no more obstacles to the release in December.

If anybody is interested he can put the game on the steam wishlist here.

Hey!

Finally my trailer is finished. As a programmer you usually have a hard time with creative things. And so it comes that I needed about 48 hours for a 50 sec. trailer.

And it started quite harmlessly with the search for a video editing program. Until now I always used the tool from Microsoft (please don't hit me).

In the end I ended up with  HitFilm Express

Then it went on with what do I want to show at all? And how do I underlay everything with music.

To make a long story short. Here is the trailer:

Hi,

one of my beta tester brought a chicken to the crypt. I don't know why you should ever bring a chicken into a crypt, but when you do, the strange shadows are gone now.

Fixed a bug where non humanoides NPC's rendered shadows of "hidden" Bodyparts.

And once again it proved to be true. Let all kinds of people test your game. Even the kind that prefers to walk the chicken instead of solving the puzzles ;)

It is done.

I finished the last point (translation into German) 2 days before release date.

Additionally I gave Clippy a mustache (very important!)

Now I just have to wait for Friday :)