![]() |
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Been messing around for hours now with alpha channels in OpenGL. Should be so easy to get to work but it fuckin’ ain’t! Damn image just won’t get transparent! Worked on it for at least 6-7 hours until I found the error. Wanna know what the error was? gluBuild2DMipmaps( GL_TEXTURE_2D, 3, textureImage.w, textureImage.h, format, GL_UNSIGNED_BYTE, textureImage.pixels ); See that line? Can you spot the error? No? Here, let me fix it for ya: gluBuild2DMipmaps( GL_TEXTURE_2D, 4, textureImage.w, textureImage.h, format, GL_UNSIGNED_BYTE, textureImage.pixels ); You just know the damn 3 was laughing at me all this time. You win this time, 3.
Hey look! Now that i’ve got your attention! Let’s talk about replays! For quite some time now i’ve had a theory about game replays. In a normal offline game situation there are only three factors that actually make the game play different from time to time: performance, user input, and random numbers. Think about it, if you played a 60hz based game (one game step per rendered frame, 60FPS) and entered the exact same input, and nothing in the game was random, the exact same thing would happen. Now, most games do have random numbers - however they are generated by an algorithm, which uses a seed which is a number that you give it. If you give it the same seed, it’ll produce the same numbers. Turns out I was damn well right! Works bloody wonders! Trying to do something technically advanced and having it work right off the bat is just wonderful. It saves all the info into a file on-the-fly, and since I only have 6 buttons, which can only be either on or off, 1 byte is enough to store 1 frame’s worth of user input. That’s 60bytes per second, and 3.6kb per minute. Insanely small file size, I thought it was going to turn out 1MB per minute or something but… DAMN. Unfortunely I had to make my own random function, so now I have to change all occurances of random() to rand(), which is my new function, in the code. Which is going to take forever. But hey, Super Banana Nababa will now automatically save replays of your best times! I’m too good to you.
And it’s not really that awesome. But hey, it runs HL2/TF2/Portal so i’ll manage! In other news! Got work done on the editor now that I can use my PC again. But more on that later. For now I just have to show off these screens of Super Banana Nababa or whatever the hell we’re gonna call it. You know, the Banana Nababa edit. You can read more about it below somewhere. Anyway: That red cavern background is just a temporary rip from La Mulana - which I highly recommend you try out - to set the mood. Plus it’s in develoment so stuff might change but still, looks pretty cool ya?
So yesterday my screen suddenly starts flashing and jerking, and now, my screen is covered with junk all the time so I can barely see what i’m doing. My graphics card is broken! Good thing I got a job last week so I can work slave hours for four months just so I can buy a new computer! I’m borrowing a card from a chum meanwhile though, but it’s really old so I won’t be able to play anything hotter than Cave Story or Transport Tycoon. That animation thing I was talking about? Making it turns out to be way easier than I thought - thought it’d take a month to get it up and running but it’s only been two weeks and i’m almost there already. I’m great! I’d give you guys screenshots but they all turn out as a garbled mess because of the broken card.
Learning OpenGL is going great. It’s got a great structure, is easy to work with, performs great, and has a way better API / structure than Direct3D. Unfortunely I can’t chare the same love for C++ - it has a tendency to give me errors. Abstract Segmentation Faults and other weird memory related shit tend to pop up a lot when you’re learning something new and have to write a lot of code to get something to work - I guess it’s just not very user-friendly? It’s a bit of an annoyance but I can cope with it, in the end they’re all my faults so it’s not like the compiler is bugged or something. Looking about the internet however, I found something pretty awesome. It’s a new programming language. It’s D. It looks and feels a lot like C++, because it’s based on C++, however it incorporates many modern features while doing almost everything C++ does, but simpler and for the most part, better. No need to juggle header files since they’re completely gone, it has a garbage collector but still lets you manage memory yourself if you want to. It’s easier and more fun to work with, it’s neat how I pretty much… stopped getting errors since I picked it up. Currently i’m using SDL and OpenGL via the Derelict library. Can be a bit annoying to set up but works great. Can recommend it for anyone, as long as you don’t need any C++ libraries, since the thing that’s bad about D at the moment is the lack of libraries. You can however use C libraries with it, it has some magic property or something so it can actually link to C code like any ordinairy C program. Not C++ libraries though, for some reason.
Now that I got back to learning OpenGL (luckily I had all my old code saved, so I could refresh my memory on it real quick) i’ve become quite excited about an animation system I have in mind. Basically it is similiar to how 3D animation works, but much simpler. In 3D animation, you have a skeleton that is basically lines connected by dots, and then a wireframe on top that follows the skeleton. My system would work similiarly - dots to define positions for limbs, and lines to connect them to form a skeleton. Then the dots would define where to draw sprites for arms, legs and so on, and with which rotation to draw them. In the end what you get is pieces stuck onto a skeleton that is animated seamlessly between a few key-frames you make. The whole point of the system is the editor though. It will be a very simple editor - not much more than a rough stick-figure animator with sprites drawn on top at 50% opacity - but since I don’t have to specify how the animations work using code, it will save me an unbelievable amount of time, and since Grindie doesn’t have to draw all the frames and because it will use less memory, he can make the limbs very high quality.
Hey guys! Want to find a neat bug in GE 2D? Start the game, then go left. You’ll fall off the map. In other news! Had a nice chat with a chap called GZ yesterday. He’d read the devlog, saw my problems with the blur, and showed me the fix. Here’s the fix: a function that is not listed in the help file of GM7, called room_set_view(). It’s in GM6’s help file. you know. But on in GM7’s. Big thanks to GZ - i’ll thank ya by linking to your game - and as for GM, you all know how I feel about it by now.
Usually when we release a game, we get about a million issues. Crash bugs, this default setting doesn’t make sense, and stuff like that. Thought it would be even worse this time, since as some of you know it was made for a competition, and that competition had a deadline, which mean we rushed the damn game. However it’s been relatively quiet on the issues front this time around. We do have some though. The maintenance I just released fixes this bug: ERROR in In script scrKeyProcess: at position 22: Unknown variable key I haven’t been able to replicate this bug, so I can’t check to make sure, but it should be completely fixed. It is cause by GM failing to run a piece of code. I mean…. what the hell? Every time I use GM I hate it more and more. For example, we wanted to put a GameBoy border around the game, as you can see here:
GM just wouldn’t let it happen though. To make matters worse I have to run the game in a super tiny window when in windowed mode, because resizing it makes it blurry. There is seemingly one way to fix that? Only, there isn’t! Because it’s bugged and doesn’t work! To sum it up, I’m really happy with the way the game came out, except for the fact that it was made in GM7.
Had real fun with the GameBoy style game I was doing. It’s called Moondig and it’s a Dig Dug clone, Dig Dug is famous right, it looks pretty fun too! So i’ve gotten quite far in it, and was excited to try out the game and check for bugs and balance etc. TOO BAD IT’S BLOODY BORING!! I made a major mistake. I forgot how Dig Dug is crazy boring. Moondig is now right where it belongs - in the trash bin! Jesus! Not touching that again. Instead! I made something outta a mockup Grindie made a few days ago. Deadline’s on sunday so you’ll get it then, but I can tell you it has something to do with secret agents. It’s also a remake of an excellent game. And it too is in gameboy style. Since it’s gameboy style, game dynamics are horribly simple, so, it’s real quick to make. Which is a good thing, because it has to be done by sunday! Can you wait? No! You can’t!
So I had this brilliant idea for a level in Statham. Tell it to Grindie, he loves it too but tells me “but you’ll have to tile the level!” because he’s just like that. Whatever, can’t be that hard right? Well, it CAN! I have no idea how he can stand doing it. Took me half an hour to figure out how the damn chipset even worked in the first place, and then another 45mins just to tile the level up properly. It was a small level too. Signed up for a wee two-week game contest - make a game of 2-5 mins playtime, deadline in two weeks. Wasn’t gonna join at first but came up with a neat idea for a black and white, GameBoy-style Dig Dug ripoff on the moon and I wanna see what I can make outta it. First thing I did once I signed up was mess around with the soundtrack! Turned out pretty neat methinks, check it out! |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||