Working on Some Bug Fixes

There were a few reasons to release the proof of concept demo-

  • Increase Visibility/Engagement
  • Gauge Interest
  • Quality Assurance

I really wanted to see if this little project of mine was something that people wanted to see, and judging by the engagement it's definitely something I should continue. I mean, even without the engagement, I would still want to- but now I feel validated in dedicating the time to it, and time is a very precious commodity when you work full time and have other obligations.

The biggest reason to release the demo however was quality assurance. I had a few hiccups while getting the demo ready, and it hindered some of the bug fixes I wanted to implement (hence the list on the game page). I think the release has shown a few bugs that I'm going to have to give a lot of attention to.

Some of the smaller ones have already been fixed, however one major issue some users are experiencing that others don't involves my use of surfaces and activating/deactivating instances. I somewhat vaguely mentioned it on the game page, but I think it needs to be examined a bit closer- When you pause the game, or a dialog box appears on the screen, the game does the following:

  1. Creates a screen sized surface
  2. Draws all applicable actors on the surface
  3. Deactivates all instances after drawing them
  4. Displays the menu/dialog box
  5. On close- Frees the surface from memory
  6. Reactivates the objects that were deactivated

What I'm noticing is that this is causing issues for a small number of users. One issue is that talking to an NPC shows a "ghost" of the player or NPC in weird positions, giving the appearance that they've jumped position for a few frames, when in reality those objects are completely inactive in the game. Another is that the surface the dialog is drawn to never properly frees, so the next NPC you talk to has a bunch of garbage text in their text box. To solve this, I made the surface clear on both create AND destroy. It worked for people who had this issue before I released the demo, however the fix didn't work for everybody. 

The solution I came up with is to use the same approach I used for Derelict, which would be the following steps:

  1. Copy the game surface to a new surface
  2. Make the current room persistent
  3. Go to a dedicated pause room with the new surface being displayed, giving the impression the game is paused
  4. Display dialog or load the menu
  5. On close- return to the original room, and set it to not persistent

This saves me from having to activate/deactivate instances, which I am thinking has something to do with the problems I'm having. There are really strange results that come from it. This however only fixes the ghosting actors when you pause, and also the spawners respawning enemies when you unpause. It doesn't change the textbox issue- but, if I had to guess some of the issue is just some weird cascade from activating/deactivating instances. We'll see!

I don't know if I'll upload the bugfixes to amend this demo, because it's a proof of concept and not much else, but I'm positive by the next demo these issues will be ironed out.

Get Simon Quest's Transylvania Adventure

Download NowName your own price

Leave a comment

Log in with to leave a comment.