Post news RSS Harmless Demons | DevLog #3: Brainstorming, Research system, Genome Map, Optimization

Come read and witness the whole process of an idea brought to life by good ol' Dr. VanDerKenstein

Posted by on

Hello my good folks!

Last time, i introduced my DevLog with some braggy catchline about how you were craving for my long-awaited return, but since i want to build a balanced, healthy relationship with you guys, i think it's my turn to take a step forward:
I missed you guys, and was impatient to come back to you with some even more pompous narrative, à la sauce du chef.

Timeline being completely shattered by the cheerfulling joy of the together-coming Holiday Season (CheekyPhrasingBeFlyingHighLikeEagles),

Let's break the program down like this:

  1. Brainstorming The Research System
  2. Implementing The Research System (x__!!!__x)
  3. Optimization Turbulencia
  4. Bonus track (tis the bonus)

1) Brainstorming The Research System

If you read/remember my last DevLog, i said that designing a research system for the player to explain what he thinks he witnessed was my next priority (ed: Uncommun demon behaviour ==> New observation ==> Research, the phase that needed brainstorming ==> Discovery), so it's the first thing i attended to.
But I got a tumultuous relationship with brainstorming.

Hate (mostly happens when starting):

  • Nothing gets actually produced (besides documents), and spending three days just thinking is a huge problem for my fascist brain, it's too close to slacking.
  • It's very scary. It's factual, down to earth, realistic, cold. There is no escape from mistakes anymore, you have to face all the flaws of your game and defeat them one by one, which can be very exhausting and discouraging.
  • It leaves no place for imagination and dreaming, as contradictory as it may sounds. You get to have this very depressing look at what your game actually really is, and it's no longer the game of your dreams or the best game ever made, it's now just THAT game, with THOSE rules and it works just THIS way. It tears you down from your clouds and soils your ideas and ambitions with reality grime.
    For those reasons, i tend to postpone it as far as i can, even if it's supposed to be my main job (Game Designer).

Love (mostly happens when processing):

  • It's a thrilling experience. I love the peace, the focus and the serenity i can reach when i'm plunging into my brain. I feel soothed in a way. Especially when i manage to get rid of the last parasite thoughts, the world doesn't really exist anymore. It's me and my brain in a dark, warm, easing and infinite place, drifting, chasing for fireflying ideas and connecting them together.
  • I'm good at it. /_!_\ PRETENTIOUS STATEMENT AHEAD /_!_\ It forces me to look my intelligence and potential in the eye and... (incoming) it's there. I do have a real ability to identify a problem, find adapted solutions to this problem, dig strange ideas out of nowhere and compute the three in a rational and solid way, making them work all together to put the game quality forward. I get to touch my smartness for once and it's very satisfying, since i sadly so rarely have the occasion to do so in my life (not at this level, at least). It might be the only moment it feels fully at use and at proper use (even if programming can come very close). To end on a more humble note, let's put this haughty part in perspective. I'm not full of myself, i'm only surface-level smart, just at the very beginning of the intelligent people spectrum. I do think i'm a part of the intelligence hotel, where all the intelligent people reside, but i'll be nothing but a recpetionnist or a liftboy there (Newton, Da Vinci and alikes occupying the Royal Suites). But it fits my ambitions very well.
  • It always ends on a positive note somehow. I usually end up being glad i did it. And do feel like i got some work done, quieting fascist brain fears. And then instantly start postponing the next brainstorming...

It was the most intense brainstorming so far. Previous ones were messier, vague and scattered because of the Hate reasons (and they weren't as needed as this one). This time it felt under control and productive. I also polished my reflexion ritual, after various ineffective attempts, it goes like this:

  1. Cutting unrequiered senses
    • Hearing ==> With isolating headphones, without music inside of the headphones.
    • Sight ==> By putting my hands on my eyes, so it's total darkness and i don't have to switch the lights back on when i emerge.
  2. Finding right position
    • Lean back ==> Comfy but annoying for cutting sight with hands. Also tends to relax too much and gets too close to a nap, i mostly don't use that jutsu.
    • Lean fr Hands on the eyes, elbows on the knees, head against the table. The winner. Keeps mind awake and focus while body is close to sleep, perfect, 10/10, give that position its well deserved award.
  3. Using paper
    • When thought process gets too deep or too long, minds tend to overload, ideas and order get lost stupidly.
    • When getting close to this state, emerging and trying to put actual state of the mind on paper. Once mind is sainly unloaded, plunge again and keep hunting those solutions.

Here are some pictures to illustrate the above incantations. I used a well-assembled puppet of my making for this. It is single, it is of good company and it has a steady job. Feel free to contact me if you're looking for a stable relationship, i'll make sure your message gets to it. Also i got a new fancy chair so i look all bossy now! 8)






2) Implementing The Research System (x__!!!__x)

Brainstorming got me settled on a system that is better illustrated through an example. Here, the player is getting through the process of making the discovery that the creature has retractable horns:

  1. Before start:
    • Discovery Name: Retractable Horns
    • Related Actions: Horns In, Horns Out ==> if added to the discovery list, those actions will become avalaible for the creature and an observation pop up will appear if the player witnesses one of those actions.
    • Genetic Code: Head, Horns, Retractable ==> Genes responsible for this discovery, will have to be linked in the research menu after observation in order to validate the discovery.
  2. In game:
    • Observation: The player witnesses one of the two related actions, Horns In or Horns Out, a pop up appears and an observation card is added in the discovery menu.
    • Discovery Menu: The player will notice a new observation card in the observation list, by clicking on it (or by click on the specified button), he will enter the genome map menu.
    • Genome Map Menu: Basically an undiscovered hex tile map the player will have to explore to find genes and link them to the currently selected observation. If a gene is linked and actually part of the genetic code of the selected observation, it will be revealed. If all genes are revealed, the discovery is validated. In this example, the player would have to link the follwing genes: Head, Horns and Retractable. For now it has to be in this exact order but that will most likely not be the case in the final version of the game.

Very fun part for me as well and super user-friendly since i can support it with visual content. It went well, few new scripts, code architecture changes, Unity scene hierarchy readjustments and it was working pretty well. Little bit of first draft visuals here and there so it's not too ugly. See by yourself:

3) Optimization Turbulencia

Everything was going well until i started trying bigger maps (final map will be pretty big, so i can't escape it), i started having huge frame drops, like 30-40 fps in the worst cases. As i'm building a one room 2D game, i can't say i cared much about performance until then. I do have preformance reflexes nevetheless, because it was a part of my programming formation, i always try to make things as clean and efficient as possible, but it was never a priority.

I didn't expect optimization before beta version at least, so it was new to me and i had to dive into Unity documentation and internet again. Somehow i ended narrowing it down to the Unity UI, which can be quit touchy to use, performance-wise, and needs to be set up accordingly to be efficient and all time smoothey. Favorite things i found on the subjects were this and this (if anyone reading this encounters similar issues, it might be helpful). I had to rework my entire UI hierachy which took a while.
Here a little maxi-best-of list of the new things i can now use:

  • Profiler (yeah héhé, never used it before cuz i live dangerously 8)
  • Canvas Group (eased control over a whole UI group)
  • Rect Mask 2D (i was using mask + image and it's less performant)
  • Sprite aliases (read about it before be didn't really understand what it was)
  • Animator Culling Mode (to avoid animation calls on not-rendered objects)
  • Lots of other details stuff about the way Unity works under the hood

I spent more than 3 days on this now and it's still not super smooth, but i came back from very low points where i thought i tried everything, reached rock bottom and would suddenly step upon some magic topics explaining a whole lot of new things, allowing me to reopen cold cases. I had too retry a lot of different approches and it's still far from perfect, but i'm happy i went through all this, my knowledge of Unity is once again expanded.

4) Bonus track (tis the bonus)

I couldn't tell from what childhood experience i got that from, but i tend to only pursue, respect and consider noble the things of the mind. Everything that elevates yourself spiritually, as far above of our disgusting natural condition of stupid animals as possible.

You have to be a sun, you have to be incredible (definition of incredible being very malleable here, since incredibility can be found in very unexpected places), otherwise you're lazy, useless, yielding to the shady part of the human nature and unworthy of its potential. That's a radical standpoint, i only was in such a strong state of mind when i was younger, lots of water as been poured in my wine since, don't worry. But still, i have some kind of natural despise towards everything too down to earth, too manual (i mean where the brain is too close to not being used), everything that is an insult to the human potential. Even if i do understand that the world as we conceived it would crumble in a day if everybody started being a genius, not using your brain tends to slowly makes your curiosity fades away and we know what lack of curiosity does to children, it turns them into adults.

Anyway, i'm not sure why but i held programming in the scorn bag, i'd say maybe i thought it was too pragmatic or too logical to let the mind do its dance. I didn't want to have anything to do with it back then. Until i had to, if i wanted to make my own games. I remember loving it ever since. But i'd say there is a special place in my heart for those two things:

  1. Code architecture ==> It's really like creating your own world. Your own little society, without the human chaos and feels slowing you down. You set the rules and that's how it goes, there is no way around it, you are responsible for all of your decisions and everything that happens. It's some kind of fascist paradise where you happen to be the worshiped leader, without any real harm being done, what could not be satisfying about that?
  2. Understanding Da Machine ==> What i said above is not entirely true. You're not alone in there. And it makes it even better. Being too much in control can lead to a lack of surprises and excitement which can lead to depression or boredom. Some kind of god happens to be in there too and the true ruler of your universe, that would be the computer. (KendrickLamarVoice) It is everything, it is nature, it is space, it is life, it is genetics, it is molecules, it is atoms. It is the tools you use to build your world. You could compare it to the real world and as such, it is mysterious and unknown, making it even more exciting to explore. The more you discover it, experience it, understand it, the more complex/solid/sophisticated the systems you'll build can get. And a life is not enough to explore it entirely so i know that part will keep me occupied for a good while.


There is still this annoying performance problem to solve but i hope i'll get through it quickly. Gameplay is really close to be final and playable. The main things to do, in order of importance:

  • Tools, lots of them. Designed, animated and not-bugged (code is here for 10 tools, but all the rest remains to be done)
  • Demon thinking process, base code is there too, but this little creature needs weapons to strike back and defend itself, strategize and find ways to get out of its cage. Hold on in there lil boy, i'll come for ya soon. You'll be delivered.
  • More incredible discoveries...

Thank you, reader who has come this far, be sure i'll be back again with more of that zany attitude.
Amer Von TukarBoy, Over.

Feel free to follow me on twitter if you want to keep up with my progression

PS: I released a new track, it's close to be smooth and accessible for once, seize your chance:

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.