Finally the year of Linux on the desktop! (and Lake Quadrobegon)

Well, I’ve hit one of my slumps (if my lack of posts wasn’t obvious).  Some of that is due to my work schedule (mornings, ugh!), some of that is due to dealing with failing cat health (and eventual death ;_;), and some of that is me, recently, using my mental energy/hobby energy towards trying out Linux (again).

So first, I settled on openSUSE.  I tried Linux Mint, and just found it feeling totally 2003.  This is 2015, UI has moved on from WinXP.  No offense, guys.  But that wasn’t he main thing.  It just felt… slow.  I can’t recall what the straw was that broke the camel’s back, but after reading up on things I decided to jump to openSUSE.  I used to love Ubuntu, and probably still would, but I kinda want to explore other options.

The Unity interface intrigues me, but after narrowing things down to something seemingly stable (there are pretty options out there, but they’re either too young or, in the case of Elementary OS, a bit too… anti-Free, and also – looking a little too  much like an OSX Wannabe).

So of the remaining distros, I narrowed down to Zorin and openSUSE.  openSUSE I wanted to try for the KDE setup, but unfortunately it just seemed a bit hoggish, and worse, I had some video glitches (I’m trying on Tumbleweed, not Leap, not sure if it would matter).  After many false starts, restarts, even making my BIOS unbootable (had to take the battery out to reset it).  I finally got it working mostly well.

I’ve been using Win10 and overall LOVE Win10 in terms of speed and stability.  It doesn’t feel janky.  I still feel like Linux is often Janky, and some of that is due to the core design philosophy I think.  The new Gnome UI is certainly interesting, but had to tweak it (I like my tabs on top, thank you!).  While FF is the more free option and I prefer it in Windows, it seems that Chrome is better in Linux… The font rendering in FF on Linux is horrid, and I had to play with it to get the tabs on top like I like, and ultimately, trying to get Netflix to play nice with it ended up having me install Chrome for Netflix.  I may switch entirely in Linux for the font rendering and netflix abilities, which makes me sad, because I prefer the philosophy of FF.

After many fits and starts (and some of the problem being being down), I finally got my music server up and running.  My next goal is to install Unity (the game dev tool, not the Ubuntu desktop).

So speaking of, and game design, etc…

Been debating the best way forward with hexbon.  It would require a large rewrite and while I love hexagons, I’m not sure this is the best spot for it. The “bee”/”B” pun is nice, but I’ve been thinking it might be simpler to take the same mechanic and put it into squares.  Basically it’d be a cross between the visual design of my Quadrophobia game and the gameplay mechanics of Hexbgon (only with squares instead of hexagons).  I’ll jokingly call it Project: Lake Quadrobegon

I think this would be more visually appealing (and some of the assets are already made), as well as perhaps easier to program.  Now that I have some of the base code and concepts, I’m going to work from the ground up on what I need to do plan wise for features (bonuses, which I didn’t consider in the first iteration (undo move stack, move to wild position – as well as altering how I score since it won’t have honey as a currency to purchase powerups).  Perhaps a rainbow colored disc could be used to “cover” a number, and you could take the disk as an undo token, or use it as a wild.  If you take as an undo token, the real move number would be revealed underneath.  There would be no penalty for undoing moves, but it would be finite, based on number of tokens you have (which would save up between levels).

I was pondering using a different game dev system just, something “easier” with less coding, then I realized, it’s not that I’m dumb and need something “easier”.  It would just mean I’d have to learn a whole new way of doing things again, based upon whatever platform I went with, and all the knowledge I’ve learned/used of Unity would be wasted.  Nah, better to forge ahead with a system I mostly know and can get up rapidly (especially since I can reuse a lot of the code/layouts, etc…)  Too many people jump on the latest hippest trend just because they can and “SHINY”.  Better, I figure, to learn one tool and at least moderately well than only a slight understanding of  a lot.  I mean, there is definitely a good thing with jack-of-all-tradism.  It’s important, especially as an indie, to have that ability.  But sometimes it interferes with getting shit done.

Quadrophobia: State of the quad

So – made some more progress today.

Implemented a Reload icon/button.  Works when clicking it.  Will have to try on my tablet.  In theory it should work fine, but you know how things go.

I also implemented the “falling stars”.  Though no trails, just applying gravity.  I messed around a bit with trails tonight and I don’t think I like how it looks.

So that’s 2 more things off the “to do” list.  Now that I have the ability to count how many moves I’ve made, drop the stars if I’ve gone beyond that number of moves, and reload the scene, I’ll either have an auto-reload or the ability for the player to select to reload or to move one (if they can).

Looking at it now, of course, the problem with a gravity effect when you pass the threshold (i.e. the lowest star falls offscreen if your number of moves go beyond that value (so instead of 3 stars, you’d get 2 for that level))… The problem is that gravity takes time.  Since it takes time, when you go to the next level, it instantly goes there, and if, say the value to hit was 5, and you had 6 moves, the 5 would start to fall offscreen, but then you’d hit the portal and BAM  next level… the falling didn’t complete.

Now – I can wait to load level until any falling has finished.  It’s going to take some learninatin’ however, because AFAICT there is no easy way to tell if a UI element is visible on camera or not.  With mesh renderers in the unity engine there is a boolean “isVisible” which can tell you whether or not the object is visible on screen.  I think the assumption is a UI element will be on screen cuz, UI.  But if you’re doing a transition effect.

I suppose a second way to do this would be to implement an animation (and probably what they really want a developer to do).  In that case, you would animate, and I’m sure there’s an “isAnimationFinished” boolean you could check.  So of course that means I’m going to have to redo all the work I did today.

The other option is to do some sort of tween effect, like a fade (I did try that on the star image, but since that applies only to the image, not the child text, it didn’t get rid of the value listed on the star).  That’s what I use to make the “Player Has a Key” icon, just an instant fade-in.  I do have iTween installed, and since there’s a way to tell if the tween still in process, that might be one way to check for a transition.  If I do that, I’d probably just do a fade-out of the stars.  Though I suppose I could just apply a falling effect manually (instead of using the built in gravity).

I’m sure part of it is the fact I’m applying gravity to a UI element, though since it’s not off limits, why the fuck not?

It’s kind of a bummer.  I know any system will have its weird limitations, but sometimes things seem like they should just work like you want.  But it never is the case.  Sometimes that’s due to the need to architect a program a specific way (that is, if you add a feature you think is “obvious” it might interfere with the implementation of another feature).  Other times it’s due to the developer having a different vision of the software, or it might be that it takes too much time to implement that feature in the way you think it should be done, and they’d rather work on some other feature.

There’s always a million different reasons a program might not work the way you want it to.  And of course, that’s a generic issue, not just an issue for game developers and coding.  Anytime a human interacts with a computer, they are, by design, interacting in one specific solution design, and therefore, not the other.  This means that you are always constrained by the vision of the programmer, the systems available (whether it be hardware, or language features, etc…), that’s not even accounting for money/time which is another HUGE issue on development, of course.

On the one hand I’m bummed that I may have to redo what I did today, but on the other, failure is just one more route to learning and understanding something better.

This might not be an issue if I animate the scene transitions (which I generally plan to do at some point).  If I zoom the camera in after entering a portal, the items on screen would get bigger, but still be animating, and thus, falling off screen, instead of an instant shift to the new level.  So that’s one possibility then I wouldn’t have to redo anything or check for whether a star/value is visible before moving on.  I may just use a camera animation then.  Of course, I still have to learn how to do it, but I think it could work.  AND it’s more dynamic since you’ll be having vertical (y-axis) motion of the star(s) and zoom motion (z-axis) of the camera…

Quadrophobia: Loading menu, work to be done….

FIRST: Real Life Escape Rooms

1) How come I never heard of this? (I mean the real life versions)

2) How come I didn’t think of it?

3) Hmmm…. Who needs a job working for some company – maybe all I need to do is make real life room escape puzzles and make mint before anyone else in Madison makes it huge. LOL… Nah.  I’ll keep working on my games.  Speaking of.



4) Progress on the Quadrophobia menu – worked on buttons, logos, etc…  Placement, animations…  Got the “New Game” button to load a new game, and then reorganized the layout of the screen a little.

Next, I need to work on a “reload level” icon/function (for when you failed or didn’t get as good as you want).

Then implement the logic and animations for “falling stars” (e.g. if you don’t get the value of the 3rd star, it falls off screen leaving you with 2 stars, etc…).

Then work on saving state between levels/games, then work on a “resume/select level” screen.

Also – instructions (not hard, but still needs to be done).  I currently have a button, but I may just end up putting in the text as a “live” tutorial (I already sort of do that with the simple levels, just need a text overlay telling players what they can do).

I think, since it’s my first game and super simple, and not that big or whatever, I may just release it on the Google Play store and put it as a free game, with an ad at the start and end, and then they can pay a buck if they wanna get rid of the ad.

Of course, I need to make enough levels to make it worth a dollar.  At least 30, I’m thinking a square value, so maybe 49…

I’m much less worried about my skill at making games, but just writing this stuff down makes me realize how much goes into making even a simple game like a small “move around a grid to an exit” puzzle game.  Sheesh.