Space Pirate

Bombini

  • *
  • Posts: 1159
Hi Space Pirates,

one thing i would like to share which makes my life much easier building this game.
I have a ton of parameters to define which i do through attiributes.

A simple enemy alone has for example those:


What makes my life easier is adding "if has value" whenever i use attributes because sometimes i just forget it or its not needed. This way i dont get error messages all the time:


I also use defaults often. If has no value then...
This can be very useful aswell. Imagine you are using a behaviour for 100 different enemis and 60 of them are human. Why noit make the human sounds for example the default.

Just a tought i wanted to share.

Cheers!

« Last Edit: October 11, 2018, 03:20:06 am by Bombini »

JeffreyDriver

  • Posts: 1868
Current Projects:
Horror Point & Click Episode 1.
I always appreciate useful feedback. Thank you.
www.jeffreydriver.co.uk

Bombini

  • *
  • Posts: 1159
Hi guys,
here is a small little feature i needed for some levels.
EscapePods. Enter them and you are pushed far distances.
In this case right inot another ship :)



I still have to finetune an imations and stuff but this is fun already.
Cheers!

Bombini

  • *
  • Posts: 1159
Hi Space Pirates!

progress can be hard. Especially when you have just "to do " things like testing and editing configs to make things work. I also strongly believe that every project has this "i cant see it anymore" point of no return which is dangerous.
But...i am starting to see the finishing line. And this is a good motivation boost. I dont see it clear on the horizon yet but i see a shimmer of it and i am getting there. I can already smell it a tiny bit. Pressing the compile button for something around version 1.0.

Oh sweet life :)

Want to take a look on my testing sheet?
Here you go:


Bombini

  • *
  • Posts: 1159
Hi Space Pirates!

it can be a challenging to find the right pacing between gameplay and the amount of dialogues and keep the general overview of the game. I use the graph below to keep the overview. The blue boxes are levels. The "Ownship levels" are almost the same but i am using different ones to show visual progress in your own ship as well.

The game gives you full control over where to go after level4. It is linear until this point.
Afterwards you get access to the starmap on which you can where you want to go. Either follow the storyline or discover hidden side missions. Although i ahve to mention that its not an open world game and the storyline is where the focus is.

Cheers!


« Last Edit: October 19, 2018, 02:13:39 am by Bombini »

Bombini

  • *
  • Posts: 1159
Salut l'├ęcumeur de l'espace,

it is a bit silent here but i am actually very busy. One third of tha game is fully working and i am making my through the rest (where levels are already built but the transitions dont work yet and dialogues are missing).
One perfromance issue got solved in the latest private release which boost performance in Simple Physics a lot (or lets say brings it back to where it was).
http://community.stencyl.com/index.php?issue=1347.0

I am happy about this!

I will do another round of testing sessions soon again and i will keep you posted.
Stay tuned!


« Last Edit: October 30, 2018, 05:01:56 am by Bombini »

kantieno

  • *
  • Posts: 242
I'm glad you have been able to keep this updated so regularly over the past few years! It looked good when I last saw it four years ago, but it is really coming along! I wish you luck!
Play my new game "Hidden Valley Ninja" here: http://www.kongregate.com/games/kantieno/hidden-valley-ninja

Bombini

  • *
  • Posts: 1159
I'm glad you have been able to keep this updated so regularly over the past few years! It looked good when I last saw it four years ago, but it is really coming along! I wish you luck!

Thanks a lot!
I will have a release in the next months which feels awesome :)
Most of the game works already like intended

Bombini

  • *
  • Posts: 1159
Hi Space Pirates!

i have an update on the transition flow...because it is playable in the game :)
You as a player get control over the mother ship after story mission 5.
Below is the flow of the game in between story missions.

You talk to your crew after every story mission (kind of a debriefing):


You walk to the starmap console to activate the starmap view:


You fly over the starmap either to the next story mission or discover hidden secrets (embedded in leves):


You get this UI if you encounter another vehicle or planet (with a short description):

Here you can scan ships, start a dialogue with your crew to start a sotry mission for example or leave.

You start the dialogue and send the shuttle with you to the level at the end:


Please ignore the text in the upper left corner. I have a ton of parameters displayed right now to see if everything works.
Have a great day!

Bombini

  • *
  • Posts: 1159
Hi Space Pirates!

Small update on a puzzle i polished:


Maybe a bit difficult to understand when only observing and not playing but you tell me :)
Have a great day!

Bombini

  • *
  • Posts: 1159
Good Friday Space Pirateros!

There is one important NPC in the game which really grows on me.
She has her first appearance early in the game and you will interact with her a lot.
Her name is Tallan.

Before her apperance:


And after (taken out of level testing). She is quite a character:  :)


Beside that i am very excited that the game if fully working from start to Story Mission 8 (out of 17):


I am adding more polish to this section as i am conntecting the rest of the levels but they are a lot of fun already.
Feedback from testers has been rather around details:
  • Why is there no keycard here? -> Hidden at a too far away spot
  • Still running in some color coding issues where testers dont want to interact with red goal markers for example (red=danger)
  • ...and bug fixing
Have a fantastic Friday!


« Last Edit: November 16, 2018, 12:07:00 am by Bombini »

Bombini

  • *
  • Posts: 1159
Hi Space Pirates,

today i want to talk about the challenges of making a game because the last 2 weeks have been some of the worst in my whole time working on the game. I thought that i would stop developing this game.

Let me explain why:

I am usually using the Flash exporter to test the game because its usually faster compared to the Desktop export. The Flash version runs a few FPS slower but i take this into account. This is really about testing new features and levels on the fly all the time (into the hundred a day). This is how i work. I advance the game, add features and new content and it in Flash. Every few weeks i compile a Desktop version which i use for play testing with testers. So far the Flash and Desktop (PC, Linux, Mac) version always behaved the same. Three weeks ago i had a fully running Flash version, compiled a Desktop version and this Desktop version would crash&close after a while playing without any error message.

Oh boy!

Well, cant be that hard to fix i thought...but i could not find the problem. I started to get very very nervous. Usually i would get an error message while compiling but i never ever (in 5 years using Stencyl) had a Desktop version crashing like this without any hint what it was. The game is very complex. Trying to find the problem seemed to me like an unrealistic task. I was down. Really down. I tried to find the problem. And the more i tested the worth it got. The game would crash sometimes after a few seconds. Sometimes after 30 seconds.
I was afraid that it had to do with the newest Stencyl version (i keep updating weekly because some of the new features in 3.5 are just too cool). Especially because i could not recall a bigger change i made since the last stable Desktop version from 7 weeks ago. Also...i was missing this "oh i am so stupid" moment discovering that the mistake was on my side.
I thought, ok that's it. 4 years of work gone. I will upload the stencyl file to this blog and call it a day.

What did i do?

After feeling helpless for some days i started to test and test. Take stuff out of the game and see if it works. What a task. Why not use a a back up you ask? Well, i could not find the problem and there for not understand the problem.
Could it be the tile API? I am using it a lot. Could it be some performance thingy because i let the player destroy the level literally till it gone (if the player wants to). Could it be actors with unassigend collision groups? Could it the be "for each actor type" because there are too many of some kind?

All of a sudden "sound bugs" appeared. I would get distorted sounds after 5-10 seconds playing. Sounds would play instead of assigned ones (like shooting a gun would play the door opening sound), crashing the game. It felt like a virus which is slowly destroying the game. I felt helpless.
And just to put it in context: It was working all the time fine on Flash.

So?

i tested for days, deactivating system after system, hitting the compile button thousands of times, thinking that i found the issue but realising more and more that this was broken beyond repair.
And then it dawned on me...that the problem was directing to one actor i use very often in the game. The standard explosion which interacts with almost everything in the game (also tile API).
But what was wrong with this actor? I could not figure it out.

I took everything out of the blocks and code. Everything...(i thought) and the crash was still there.
I just left the sound file in for days, starting to qustion myself.................the sound file..........
Could it be the problem? NEVER, had this before.

I checked the sound file. No meta data, sample rate and resolution problems. That could not be it. I re-imported the audio mp3 and ogg replacing the sounds.
Crash still there.

Problem ONE:

Again testing testing..."Argh this stupid sound file...i start hating you so much...cant hear you anymore...delete you know".....Problem gone (for the moment). The game keeps crashing after 20 seconds but not after 5 seconds anymore and the sound problems are gone.

Wow...i still cant explain what happened, especially because i have not touched sound in months but this was ONE of the problems crashing the game. The sound had to be deleted put of the library and it was messing up almost all sounds. No clue how this can happen. Again, working fine on Flash. And this is scary.

And i start to understand that i seem to have two problems causing a crash.

Problem TWO:

After more exhausting testing (checking collissions and everything) i found a line somewhere where a (deleted) actor was not created anymore. This was causing the crash after 20 something seconds. It was very very deep in some sub block. But...i always got a compile error before in my game when that was the case. Always! Thats why i did not consider it.

Conclusion:

I have a working behaviour (the way i work) which worked for 4-5 years with a fixed rule set (for example: "if not actor assigend in create actor" i would get a compile error. Or game works in Flash like on Desktop which is not that case anymore) but i have to question it and adjust. What drove me crazy is that i cannot explain this sound bug. Thinking outside of the box might help sometimes but there is nothing preparing me for something like this (because its not logical and i didnt had this "oh my fault moment" which is so important to learn).

Seems like i have a working version again which is positive because then you will get to see the game but i need a few days of a break from this game and topic.

See you soon,
Bombini









« Last Edit: November 28, 2018, 05:45:16 am by Bombini »

Luyren

  • *
  • Posts: 1522
Man, I can relate with this story (about having a crash and not knowing where it is). For future reference (and in case you are not aware), if you go to Run > Run App in Debug Mode > Windows (Debug) in the top menu, your windows compile will spill out a proper error message, with error code and faulty line when applicable, if I recall correctly. I don't know if it would find the sound problem, but I believe it would catch your null actor problem earlier.

Another thing to note: only the first compile after you hit Clean Project takes a long time. The following compiles are significantly faster (in my case, around 30 minutes in the first VS 30 seconds afterwards, roughly). If your target is desktop export, I suggest you invert your work flow: test on desktop frequently, and from time to time test on flash.

Do enjoy your break though, sounds like it is needed. Cheers.

« Last Edit: November 28, 2018, 05:54:10 am by Luyren »
Working.

Bombini

  • *
  • Posts: 1159
Thanks for the comment!
I was not aware that "Run > Run App in Debug Mode > Windows (Debug)" could give me better picture. So thanks!
I am of course aware that only the first compile takes that long and i already changed my workflow. I used Flash because it takes 20 seconds instead of 30 seconds for Desktop after the first compile.

Cheers!

merrak

  • *
  • Posts: 2265
Oh man, I've definitely been there myself. Maybe you even saw my "Schroedinbug / LD03 error" story I posted back in July in my game journal thread. It never fails to be discouraging. If I ever hit that point where I feel like throwing it out and calling it a day (so you're not alone there), that means a nice vacation is in order. No problem is impossible to solve, but sometimes it takes a few days break to remember that.

Crashes are actually a good result of a bug, because with the right tools you can then analyze where things went wrong. I didn't know about what Luyren advised, but it's useful to know. Since I develop on Linux, I usually use gdb instead.

The worst kinds of bugs are the ones like the sound, since they leave less of a foot print. The one thing that's absolutely saved me countless times in my game is my error reporting system. It's probably the most important feature of the game engine. I've posted a few screenshots of them from time to time. They usually post a four symbol error code.


What you don't see is the mountain of info that's dumped to the log file-spitting out any data that I thought might even be remotely relevant. It's my version of assertion.

My advice to anyone working on large scale projects is to invest some time predicting all the things that can go wrong and checking for them in each critical function/script you write. The extra time spent doing this early on will pay off in improved sanity later :o I have 683 error checks right now. Some are intended to catch things like damaged files, modders who want to tinker with the maps, that sort of thing--but the vast majority of them are intended to catch my own mistakes... say, if I forget some criteria for a certain method to work correctly.

For example, if I want to make a new kind of tile, there are several things I have to set for it to work correctly. If I forget a step, the game will run, but maybe there will be a clipping error, or the tiles draw out of order. Without some assistance, there are dozens of places to look for a problem. Is there some numerical round off error? A memory issue? Did I just draw the image wrong?

In your case, maybe you have a behavior "A" that loads an actor in an "on created" event, then another behavior "B" reads that attribute in its "on created" event. It works fine, but then for some reason, two years later, the order the behaviors are loaded changes, and suddenly behavior "B" tries to read the actor attribute before "A" creates it. If you have a check in behavior "B" for a null value, then you get an error message telling you exactly what went wrong. Otherwise, you have a crash, and two year's worth of code to look through to find it.

I will second Luyren's advice on inverting your workflow. Flash is not as rigorous as desktop. It'll let you get away with some null values that desktop won't. By testing on desktop more frequently, you're likely to catch these kinds of errors earlier, when there's less work to sift through when the problem occurs.

« Last Edit: November 28, 2018, 10:13:23 pm by merrak »