Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

 
Advanced search

1366156 Posts in 64014 Topics- by 55899 Members - Latest Member: NullHand

September 17, 2019, 01:30:14 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsCheezus II: The Search for the Reason the Game is Still Called Cheezus
Pages: [1]
Print
Author Topic: Cheezus II: The Search for the Reason the Game is Still Called Cheezus  (Read 1902 times)
Cheezmeister
Level 3
***



View Profile
« on: January 17, 2016, 05:34:09 PM »

Windows Beta | Project Page | Twitter

Once, there was a piece of cheez.   Its name was Cheezus.

That's about it.

Cheezus had but one burning desire in its life: to find out why it was a
piece of cheez. You see, Cheezus was a sentient piece of cheez. Cheez is not
normally sentient. Similarly, sentient beings are not normally pieces of cheez.
With the exception of Cheezus. Cheezus knew this, and longed to find out the
meaning of this anomaly of logic.

Thanks to your help
, Cheezus discovered the answer it so fervently sought:

The programmer was hungry.

Indeed, he who brought Cheezus into existence had the munchies, and therefore
this life was molded and lived as it was. But it's not over! Thanks to you,
Cheezus' quest was fulfilled. Thanks to you, the programmer can afford to buy
food, and so Cheezus is no longer cheez1. More importantly,
he can bring to you another less-than-epic adventure.

Thus begins Cheezus II: The Search for the Reason the Game Is Still
Called Cheezus Desite the Fact That I Am No Longer Cheez!


  • Find out what form Cheezus now takes!
  • Make use of many more powerups!
  • Create your own levels!

Follow Us, the Swiss eunuch who is no longer cheez, as it defies all reason through countless a few adventures and five massive levels. Us will need all its wit and everything you can muster to succeed at its quest! Don't let Us fail!

It's been ten eleven long years since I made Cheezus, and almost as many since the codebase was last touched, but incredibly, it still builds2 and I am thrilled to dedicate anno domini 2016 to the second and final chapter in the saga of [Cheez]us.



I am excited to share this journey with you.



1 For the record, I made thirty dollars from sales of Cheezus. That's 0.3 Benjamins! Or like, one trip to the supermarket. I earned, literally, five thousand percent more than that in my professional gamedev career which is practically nonexistent.

2The last time I worked on this title, I was running Windows XP. Holy throwback, Batman!


« Last Edit: November 13, 2018, 11:37:28 PM by Cheezmeister » Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #1 on: January 21, 2016, 10:11:54 PM »

Part of what makes Cheezus special to me is the handcrafted, made-with-love-and-cupcakes soundtrack. Even my novice's grasp of FL Studio 6 elicited some tunes that I'm satisfied with to this day. However, I learned a lot since then, and sequenced samples don't have the same warmth that a real instrument provides.

One of my goals for the sequel is to rearrange the music for the twenty-teens, including a sprinkling of melodic slap bass. I recorded a preliminary take on the first level theme's bassline. Unfortunately, not only was it recorded with a potato (i.e. a microphone on my desk), but since Windows no longer ships with sndrec32, I wound up with this wack m4a file that even Audacity wants nothing to do with. So, I have this crackly thing that's impossible to embed and might not even play for anyone other than me.  Facepalm

It'll get better. I hope.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #2 on: January 23, 2016, 08:15:39 PM »

Man, this code is full of copypasta. In fact it's worse, it's full on copy-filet-mignon. Ten-years-younger-me, what were you thinking!?

All I wanted to do was add a sound effect and sprite change when Us hits a cheez tree. But apparently that's too much to accomplish without a fight.

I wound up, basically, hacking together audio management from scratch, because apparently I forgot to do that? Or maybe I ripped it out of the engine in the early sequel dev days, because it seemed like a good idea at the time. Perhaps it was, because at least now I know it works. I also fixed a memory leak or two, but couldn't figure out the source of a mysterious segfault, so I'll just have to live with it for the time being.

Is a segfault when you quit the game a bad thing? Does it even matter? I hope not. On the bright side, I learned that Audacity can record from the mic, easy peasy, and spit out a nice WAV like God intended. So no more Windows utilities from now on.

Behold, the rare cheez tree in bloom. Steve Irwin would be in awe, may he rest in peace.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #3 on: February 15, 2016, 09:00:42 PM »

Today I played with bombs. Or rather, I played with the rules governing bombs. Us actually played with them.

I rather think the fuse time is too long. One can practically see Us tapping its feet impatiently, waiting for it to blow up already.



It wasn't too difficult to find the fuse definition:

Code:
Bomb::Bomb(int X, int Y, bool useXY) : Thing(X, Y)
{
fuse = 200;
loc.x = X;
loc.y = Y;
sprite = cheez_load_image("bombanim");
}

Don't ask what `useXY` is for; I haven't the foggiest. This code should make you cringe. For multiple reasons. Let me explain one. WTF does 200 mean? 200 seconds? 200 millis? No. That's 200 frames. Which, at the current rate of (probably) 30 FPS, is just over five seconds. But you couldn't tell that from reading it, no, you'd have to scan the rest of the related code to infer it, which is just what I did, and now it's past my bedtime. Thanks a ton, me-from-the-past.

Besides the sneaky implied units, the fuse is hard-coded! It's not a constructor arg, it's not malleable, it's not even a constant! It's hidden deep within the bowels of implementation. As a gameplay parameter which I might (read: did) want to modulate, this should really be easier to change. Ideally, at runtime if possible. Lesson learned.

Anyway, I also added screenshake, which was so ghetto-hackish I don't even want to talk about it, but looks pretty juicy. Here's the end result.

Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #4 on: March 01, 2016, 09:38:21 PM »

So, I drew a thing. It looked much better in my head, but it wasn't doing much good there so I tried to move it onto paper, or rather bits and liquid crystal. It looks like this.



The MAIMframe is a bigass red supercomputer that loves to destroy stuff. You will need to enlist really bad programmers to defeat it.

I think I'll work on it some more next chance I get, it's intended to look cartoony but without being a bit more perpendicular, it doesn't really come off as any sort of machine.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #5 on: March 01, 2016, 09:40:43 PM »

(And yes, that is a Hitler moustache. It's evil. Therefore, Hitler stache.)
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #6 on: June 14, 2016, 08:06:37 PM »

I haven't been keeping up with my devlog, because I am a horrible person*, but development is moving along smoothly. I just ported it to Linux, which involved exactly zero effort as it worked the first time with no bugs noted (so far)!

Check it:



See that title bar? That's totally Linux, baby. I also made a sizeable dent in designing the fourth level, live, on stream, and figured out how to elicit less-crappy recordings of bass licks and such.

Once the fourth level is complete and the last boss fully programmed, I should be ready to shift into playtesting and hardcore bug-squashing. Ambitiously, this should happen by the end of June.

* Actually there were some family emergencies. But also I'm a horrible person.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #7 on: June 16, 2016, 09:44:13 PM »

Level editor confirmed to work on all 3 major OSes. Well, sort of. Can you spot the difference?







I've actually been trying to diagnose the weirdness drawing on Mac for quite some time. Intense debugging, byte by byte, has yielded nothing so far. I might have to do the unthinkable...and ask for help  Screamy
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #8 on: June 20, 2016, 09:38:11 PM »



Gave the Maimframe a simple walk cycle. It's still using the ghetto Hitler sprite. I know, I know. I keep saying I should focus on getting feature complete and rework the art later, and I know what's going to happen: it'll be the eleventh hour, I'll be so ecstatic and relieved to have something remotely shippable that the art is going to stay just the way it is. I know this, and yet I'm allowing it to happen.

Sigh. The human psyche is cruel.

On the flip side, programmer art is sort of part & parcel of the game, so as long as I can get it to all be more or less consistent, we'll be in good shape.

Instead of creating an animation like a civilized human, I used just one sprite and did errything in code.

Code:
void Maimframe::display(SDL_Surface* screen, SDL_Rect& camera)
  {
    int phase = walkanim % walkcycle_length;

    int offset = min(phase, walkcycle_length - phase) * vel.x;
    int backphase = min(phase, walkcycle_length / 2);
    int frontphase = max(phase, walkcycle_length / 2);
    int backheight = phase_to_height(backphase);
    int frontheight = -phase_to_height(frontphase);

    int x = loc.x - camera.x;
    int y = loc.y - camera.y;

    apply_surface(x + offset, y - backheight, sprite, screen, NULL);
    apply_surface(x - offset, y - frontheight, sprite, screen, NULL);
  }

Because the entity is constantly moving, drawing like this has the peculiar side-effect of making the enemy look bigger than its hitbox. I'm not sure whether this is a problem, so I'm not going to solve it just yet.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #9 on: November 15, 2016, 12:12:49 AM »

It's been five months since my last post here. Rest assured, it is merely because I'm a horrible person who doesn't maintain my online presence, not because I haven't been developing.

Since June, besides taking a healthy dose of personal/family time, including my first trip to japan to study Tendo-Ryu Aikido, I've gone through a couple small playtest sessions, added some juice here and there, and generally fleshed out the remainder of the last level. That last has turned into a bit of a slog, as I feel like I've exhausted my options for level design with the elements I have. I know that's probably not true and I'm really just not feeling very creative, so the process has mostly been throwing tiles at the canvas and seeing what sticks. It seems to play alright, if not tremendously inspired.

Oh, and I did draw a better Maimframe, thank you very much.  Tears of Joy



The game's in open beta now, by which I mean I'm leaving a build up till whenever. You can play it here.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #10 on: September 26, 2017, 02:31:29 PM »

Development continues along. I'm out of features, so there's not much glamorous content to share. Almost all known tech bugs have been fixed. Playtest feedback has been super valuable in identifying design bugs.

Here's a more recent screenshot:



Trying to add polish while preserving the lo-fi aesthetic and keeping scope in check. I'm already approaching Duke Nukem Forever tier with missed milestones, so I'm quite keen to ship by the end of the year come hell or high water. Honestly, the only thing preventing me from shipping tomorrow is the background music. If you play guitar and have some spare time, get in touch Grin

Also, I recently made https://cheezmeister.itch.io/fliff at my first jam in forever, so that's exciting.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Cheezmeister
Level 3
***



View Profile
« Reply #11 on: November 10, 2018, 07:24:09 PM »



Bit of work making the HUD text legible on both dark and light backgrounds. The gray rect is not great but it at least gets the job done.
Logged

෴Me෴ @chzmstr | www.luchenlabs.com ቒMadeቓ RA | Nextris | Chromathud   ᙍMakingᙌCheezus II (Devlog)
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic