• Hey Guest! Ever feel like entering a Game Jam, but the time limit is always too much pressure? We get it... You lead a hectic life and dedicating 3 whole days to make a game just doesn't work for you! So, why not enter the GMC SLOW JAM? Take your time! Kick back and make your game over 4 months! Interested? Then just click here!

Windows She's Had Enough - Radish Edition

She's Had Enough - Radish Edition
(Temporary Banner, photoshop is having lunch)
"A battenberg that is planning on releasing a product to the public? This was foreseen as the end of days! Hide my young radishlings, hide from its wicked stench!" - Overheard from a 'Cult of Radish' priest, 2016.

Yes, yes my friends... The time has come where I put my mind (and force my friends) to the task of making a game worthy of a release to you good, fine, delicious individuals. Below you can find a bunch more information on this upcoming masterpiece (when I say masterpiece, it's more than likely going to sink like the titanic, into the aquatic depths,) including developer logs, screenshots, videos, test builds (limited to a demo-size environment), and probably some more ramblings from a very sleep deprived, smoking and slightly insane taste of delicious cake.

Thank you for reading,
- TSB



Developer Logs:

Screenshots:
(Character Model Progress):
(Inventory):
(School Entrance Call):


(School Reception/Staff Room):


(School Room Transition, Door):

Videos:

Builds:
The origin, the legacy, the birthplace. The original game, made in 72 hours and submitted to GMC Jam #19: Download (Prototype 1)

CPU: Intel 4 Core CPU or AMD Equivalent
GPU: AMD R9 370 or NVidia Equivalent
RAM: 4GB
HDD: 1GB Free Space
OS: Windows 7
Peripherals: Keyboard + Mouse Compatible, use headphones for best effect.

If you have any questions or concerrns, please leave them below or PM me, and I will reply as soon as possible.

P.S: Sorry if the light dressings of humor aren't responsible, I get carried away sometimes heheh...
 
Last edited:
Yes I figured so heh, unfortunately that title probably won't apply in this version, as it's most likely going to be third person, depending on if I can actually get the animations to work inside the deferred scene.
 
[DEVLOG-ENGINE]
Post Developer Log Message

Welcome to the first development log for SHE: RE. I decided this would be a fun little thing I could do to give people some incite to how the game is coming along, and how I'm loosing sleep and failing at everything I could possibility fail at while coding. I also decided it's a brilliant way to give back to the community which has housed my insanity and helped it grow to a number of sizes.

All these blogs can be followed as ways for you to learn methods for 3D development (mostly theory and ideas), including some C++ stuff to do with Game Maker: Studio, and it's functions which let you ride the living hell out of it when you can make DLLs.

Ah, that's a lot of rambling, I'll state now this will only be included in the first developer log. Now; onto the meat!

Developing Tools for Radish Edition [Part 1]
So far, the development of Radish Edition has consisted of painful amounts of converting 3D Meshs, loading them into Game Maker: Studio's IDE, and phrasing the file in Game Maker so I can display it... This includes using d3d_transform_*_*(terrible and slow).

I woke up one morning, groggy and tired from a night of drinking coffee and contemplating an absolutely insane way I could solve this terrible system I'm using for creating the game... It dawned on me, almost as if it was a plague, ruining my sleeping pattern and driving me closer to the brink on insanity. I needed development tools!

Creating MAE Template (The Appetizer)
MAE Template is a 3D World Designer/Editor I've been creating for Game Maker: Studio, for use with MA-Engine (a lite-weight GML version, with DLL support), which is a 3D Engine created by me and two other members of the GMC over the past two years.

It's intention is to aid the design and creation of 3D Scenes, by doing most of the heavy lifting in the compile of the scene; eventually releasing it as part of a mod tool collection and in the far future, a stand alone application for other people to develop games with.

Creating MAE Template (The Main Course)
Solving the lack of Windows Widgets:

Users of Game Maker 8/8.1 will remember a time when DLLs like MaxWINAPI2 (don't quote me on the name) existed for this purpose, but these aren't compatible with Game Maker studio due to the way Game Maker studio handles its front buffer, which is always trying to be drawn on top of anything in the window. Attempting to place Window Widgets into the Window will just cause them to flicker, which looks ugly and honestly gives me a headache. This left me with two alternatives:
  • 1) Make a DLL which replaced Game Makers WinProc with my own.
  • Pros: Native Widgets, I like to be lazy
  • Cons: Game Maker keycheck/drawing would be disabled.
  • 2) Make Window Widgets in GML...
  • Pros: Customizable, No DLL
  • Cons: I. LIKE. TO. BE. LAZY!
I decided to go with option 2, it's ended up looking pretty smooth.

There's still issues with how the resource window overlaps the console window, but they'll be solved eventually.
The 3D viewport pain:
Obviously that mass space of gray isn't supposed to be there, that's where sub windows like the Scene, Material & object editors etc will go, I need to solve problem of rendering 3D objects to a scene which could be edited.

I've decided to do this using a deferred rendering setup (yet to be fully implemented), which lets me make a Diffuse, Depth & Normal map of the 3D scene using MRTs and a HLSL9 Shader. Currently, I've only implemented the Diffuse MRT, and another which lets me do things which are explained later on in this devlog.

The camera was the most painful part, as I needed forward, sideward and up/down movement, without gamble lock, and an easy way to control it. I obviously can't show an example of that, I don't have the time to record videos and convert them to gifs, sorry.

The Axis represents the center of the room, which is 0. The grid spans -256 to 256 in 2D Dimensions.


There's also some options for the viewport, which are pretty nice.

Now I'm left with one last issue for the viewport, selecting objects in 3D space using a 2D space.... This is where this other MRT comes in. I took a crack and a rather fast method of 3D picking which doesn't require heavy matrix calculations each time a frame is rendered, it works by assigning each created object with a ID, then drawing this ID to the suface as a colour, using the shader to do it.

The MRT ends up looking like this, although it is never displayed, you can get an idea how it works like this.


A object selected. As you can see, it's really precise and really quick. transforming objects won't work this way obviously, but matrix calculations only need to be done if an object is actually being transformed.

Creating MAE Template (The Dessert)
So what's left?.. A lot, so much it scares me.

I need to make objects movable in the 3D scene, which was talked about above, and I need to design a better way to create materials for the editor, since this current method....

This system would be absolutely amazing, but I'd need window_device() to work again, so I can make a DLL that allows shaders to be compiled while the MAE Template is running.
Is not that good...

I also need a better entity system which doesn't piggy back Game Maker objects, it's slow to do that, and needs me to execute event_perform x amount of times for rendering the scene.

It also needs the ability to export the Scenes... It'll have some awesome features for that, thanks to GMAPI for GM8 & 8.1, which lets me extend DX8 to allow people who use those versions to support MAEngine & MAETemplate.

I'd also like to export scenes for other peoples 3D Engines, such as Slayer64's, that new oneBlinksomething Rendering System and Ultimate3D. The first two require me actually buying them though, so that's not happening any time soon. Ultimate3D requires ASM shaders too, so chances are I won't be implementing deferred rendering... Maybe GMOgre, though that extension was horrible to use.

Creating MAE Template (The Bill)
How was this SHE: RE devlog post? Terrible? Insightful? Useful in anyway? Or was it in fact the ramblings of a slightly insane man typing frantically at his keyboard for an hour. Post your comments below, if there's other developer logs, tag which one you're replying to so I have an idea what you're rambling about.

Thank you,
- TSB
 
Last edited:
F

FROGANUS

Guest
DON'T MIND ME. [IGNORING]

WOW, BTW...
Me and the samurai killed each other (then I guess his two alternate dialogues were both triggered?) A highly psychedelic finale, like a Jordowosky film or something.
Great game! The charm of the resident evil door grew kind of tiring, but the humor and surreal dialogue make this game fun. It's kinda like one big easter egg.
 
DON'T MIND ME. [IGNORING]

WOW, BTW...
Me and the samurai killed each other (then I guess his two alternate dialogues were both triggered?) A highly psychedelic finale, like a Jordowosky film or something.
Great game! The charm of the resident evil door grew kind of tiring, but the humor and surreal dialogue make this game fun. It's kinda like one big easter egg.
Cheers dude, glad you enjoyed the prototype. The newer game will not skip out the humor and dialogue, it's become one of the most important part of this game. :)
 
Just a quick update:

I've been busy extending Game Makers 3D Functionality for SHE, so I can release something that actually looks somewhat modern. So far here's what we've got from DEx (D3DEx, a dll I'll eventually release for ya'll. (I did invest in 'Graphics Utilities' from the market place, but it didn't have what I needed, and the render targets didn't' support 3D for some odd reason. This'll be free to any user anyway, so enjoy a sneak preview of stuff to expect in both Radish Edition and D3DEx.))

MAETemplate Scene Loading, with (VERY SIMPLE) forward rendering:

Advanced AF Particle Engine: (Seriously, it has modifiers for just about anything.)


Floating Point Render Targets: (The future Deferred Renderer)



OH, ALSO:
I need some people would be willing to benchmark Radish Editions backend rendering engine, and send me a file the game will spit out detailing the stats of the renderer, and your PC specs. It'll help me optimize to the general public, since I only have my 8-core development PC, which'll tell me 2000fps during every bloody test. If you're up for that, PM me. Be warned it's a big download though (like 100MB for nearly nothing. I'm making a game here, not a piddlepot, so what do you expect?)

Combined with that, RE now has this: (OMG A VIDEO)
Obviously half this stuff isn't finished, but hey, I figured it'd be a nice thing for people to see. The voice acting needs to be re-done obviously, since the Mic I had when I did the recording was absolute rubbish, but I've since replaced it.
 
Hey y'all,
It's been a while since I've updated this post, and I'd like to update you guys that Radish Edition will still be coming in the future. At the moment my time schedual has gone a little insane so I'm not able to work on this 'masterpeice', but the time will come for it to come to a close, even if it's no where near the scope of what I had initially planned.

This is done more for people who might've seen this and asked about it; sorry to be a disapointment.

Thanks,
- TSB
 
E

Earth Traveler

Guest
Well, I just finished my first successful playthrough of this, and it's definitely... bizarre.

The enemies are definitely creepy. I freaked out a little the first time i saw one. The aiming is really easy and intuitive, too, which is definitely a plus considering the lack of crosshairs. The controls were pretty good overall, although I occasionally found myself too close to a door to open it.

minor spoilers???
the guy in the staffroom is pretty funny. His mere presence there seems utterly bizarre, since there's floating eyes right outside the door and he's just sitting in there smoking. His dialogue was pretty funny too. He was also kinda mysterious, since he has that bluetooth-looking thing in his ear and seems to know something about the radishes.

The radish guy was funny too ("have you been touching my radishes?") apologies if i misquoted, which i probably did.

Then there's the random samurai in the garden of an abandoned school, talking about his honor... I defeated him, but just what he was doing there... really, I bet the whole backstory to this game is going to be quite intruiging.

I did notice a bug, where occasionally one of the enemies would fail to despawn on defeat. Also, imo the text telling you the actions probably shouldn't be red; it can sometimes be hard to see against the red walls... although based on your video from last year, that's probably not going to be an issue for long. Heck, maybe you've got the first bug handled, just thought I'd let you know.

Overall, I thought it was pretty good, and whatever the backstory to all this is, i think it'll be interesting.
 
Well, I just finished my first successful playthrough of this, and it's definitely... bizarre.

The enemies are definitely creepy. I freaked out a little the first time i saw one. The aiming is really easy and intuitive, too, which is definitely a plus considering the lack of crosshairs. The controls were pretty good overall, although I occasionally found myself too close to a door to open it.

minor spoilers???
the guy in the staffroom is pretty funny. His mere presence there seems utterly bizarre, since there's floating eyes right outside the door and he's just sitting in there smoking. His dialogue was pretty funny too. He was also kinda mysterious, since he has that bluetooth-looking thing in his ear and seems to know something about the radishes.

The radish guy was funny too ("have you been touching my radishes?") apologies if i misquoted, which i probably did.

Then there's the random samurai in the garden of an abandoned school, talking about his honor... I defeated him, but just what he was doing there... really, I bet the whole backstory to this game is going to be quite intruiging.

I did notice a bug, where occasionally one of the enemies would fail to despawn on defeat. Also, imo the text telling you the actions probably shouldn't be red; it can sometimes be hard to see against the red walls... although based on your video from last year, that's probably not going to be an issue for long. Heck, maybe you've got the first bug handled, just thought I'd let you know.

Overall, I thought it was pretty good, and whatever the backstory to all this is, i think it'll be interesting.
Thank you man, weird to think people are still playing that prototype ha.

To answer your thing about being too close to the doors, the entire system ended up getting confusing and messed up when I was making the game. Since I didn't sleep for 72 hours while making the original prototype for the GMC jam, I thought it'd be a good idea to keep the player where they were and just change where the level loaded in... It was a terrible idea that made the boundries miss-align with the world.

Funny story about the characters, there was originally going to be another 3 with lots more lines of dialouge, and a few more enemies but they were cut due to time. My favourite of the enemies was the wheelchair monkey. The random samurai was literally thrown in to fit the theme, which was Japan. Though he was a written character that was intended to be in the game, his location was originally meant to be elsewhere. The boss from this area was supposed to be some mutated corpse called 'Paranorman', a terrible ass pun on paranormal.

Yeah the bugs got fixed; most of them anyway. The entire thing got re-written from the ground up, including new textures and meshes etc.

The backstory wasn't really written at the point of the prototype, but it takes insperations from some of my favourite games, such as Medievil, Silent Hill, Resident Evil. It's primarily satire and terrible humor though. Not to mention my group of crazy friends who are responsible for most of these characters.

Thanks for checking it out dude!
- TSB
 
Looks cool. You mentioned you liked King's Field awhile back. I can see the influence in the movement a bit, heheh! Replying to follow the thread. =)
Thank you. :) I see what you mean haha, about as slow as King's Field too in these old builds! The game has since been through about 2 total rewrites, I'm currently on the 5th in total, not including the most recent one I've yet to actually post about in this thread (though you've seen it in the status), which is the final re-write since I actually want to finish this damn game one day. This should also come with a gameplay demo, which is what I'm working towards at the minute. All I have to get done is the long slog of level design, which is going to probably consist of a massive silent hill rip off. :)
 
Getting the PS1 feel [part 1]
A short developer log here, just to let those who are interested know I am back working on She's Had Enough. This one is about mastering that PS1 feel, and things I had to learn and things you'll need to know if want to get the same retrogasmic effect.


The 15-Bit Colour Limitation
The PS1 had the ability to render 24-Bit graphics, though it was nearly never used as the PS1 was limited by a 1024x512 framebuffer to store all its texture data on, and half of this was already taken up with the PS1 'render targets'. Most games back then used palatized graphics, and on the PS1 those used '15-Bit' colour (even though they say they use 16-bit), in other words RGB555. There is also an extra bit for transparency on the PS1, but we don't care about that since we are just emulating the effect.

If you've lost me, check the wall in this Resident Evil 2 gif; you'll see how the shading from the light isn't exactly smooth:

So how do we go about emulating this exactly? Well we could store all our textures as 15-bit, but that wouldn't effect lighting calculations, so we need to make a postscreen shader... Now to chop bits off, we want to use bitwise; but you can't do that in HLSL9, or at least not in Game Maker, so we need to do it a different way: Division and Multiplication.

To achived this effect, we can do this simple math inside a fragment shader:
Code:
5bitcolour = (floor((8bitcolour * 255.0) / 8.0) * 8.0) / 255.0
That will chop off 3 bits from the colour, then floor it. This will remove any decimal place so when we multiply it back up, we get limited colour.

Not that difficult huh? Here's how it looks in SHE (I've made the effect really obvious by changing the 8 in our math to a 32:
With Colour Limitation:
image1restore.png

Without Colour Limitation:
image2restore.png

Here's the fragment shader code if you want to take a look yourself:
Code:
struct PS_IN {
    float2 vTexcoord : TEXCOORD0;
};

struct PS_OUT {
    float4 vColour   : COLOR0;
};

PS_OUT main(in PS_IN IN) {
    PS_OUT OUT;
        //Get the initial colour.
        float4 tex    = tex2D(gm_BaseTexture, IN.vTexcoord);
       
        //Get the expanded rgb888 colour value
        float3 rgb888 = tex.rgb * float3(255.0, 255.0, 255.0);
       
        //Limit the colour value.
        float limit = 8.0;
       
        float3 rgb565 = float3(0.0, 0.0, 0.0);      
               rgb565.r = (floor(rgb888.r / limit) * limit) / 255.0;
               rgb565.g = (floor(rgb888.g / limit) * limit) / 255.0;
               rgb565.b = (floor(rgb888.b / limit) * limit) / 255.0;
       
        //Pass final colour to struct
        OUT.vColour = float4(rgb565.rgb, tex.a);
             
    return OUT;  
}
That's it! Colour limitation achieved! Now we have our pixel output looking about right, we need to work on how the meshes look within a scene. So...


Next Up: Affine Texture Mapping!
 
Last edited:
Top