Journals

Admer4563 years ago2021-02-23 11:23:28 UTC 13 comments
Mmm, the cake was very tasty. I'm gonna have two tests today, too. What an amazing gift lol.
I have a plan3 years ago2021-02-18 13:47:19 UTC 2 comments

Dreaming... of Deleted Scenes?

On the 3/3/2020, the first State Of Emergency was declared in Japan, where I currently reside. It lasted for 3 months.

During that time, I played video games to pass the time while ‘working’ from home. After a while, I came to Counter-Strike: Condition Zero Deleted Scenes and thought to myself that I should start it up and give it a solid playthrough, and that is exactly what I did.

Then, only after finishing it, did I do a little bit of searching around to read up about how it came to be that a cheesy, action game that had the CS name came to be. I became enthralled in the hardships and development hell that it had gone through. From Rouge Entertainment, to Gearbox, then to Ritual Entertainment, and finally to Turtle Rock Studios; It had been through so much and still came out somewhat well off.

Afterwards, I spent time researching how to mod GoldSource games with one goal: to mod CZDS and incorporate its unique gameplay elements into something tangible and well made. The only issue was that I was rather inexperienced with making things (and I still am to this day), so I gathered up as much information as I could and then realized something that I was missing. This thing was the editor file required by Hammer or JACK to be able to make anything.

The FGD Quest!

I looked on the Valve Developer Wiki for answers and found a version of the CZDS FGD. This was a fairly old version, but it would do. Later, I found that it was rather incomplete and did not have the very basic additions that would be key in fully setting up a living, breathing map of my own. Sure it had func_doors, func_buttons and all the func_breakables you could smash, but what was all that when I did not have the options to break said breakables?

Eventually, I discovered that some of the designers created a map pack with extra missions that were supposed to show the community how to mod the game. I dug up even more information from how they used certain entities and the extra data that was in the missions. Implemented them and moved to searching for more information.

I came across the old Ritual Entertainment forums. Where I found 2 old developers that shared some new features that I did not know how to use. trigger_zipline and trigger_changekeyvalue. I quickly and swiftly implemented what I had learnt from them.

On the next information finding session, I found a Chinese version of the FGD that was made by a lad named Dong on the VDW. Dong was the only other person at the time to have released a large mission set on a GameBanana. I found him on Steam and talked to him through google translate about the changes he had made. With his help, I translated his notes and learnt some extra stuff along the way.

But, the FGD was still incomplete. Data was missing. I searched everywhere I could on how to piece this broken mess back together. I learnt FGD syntax and how to format them well. I (diligently) learnt how to read and correct errors. I joined the TWHL community in hopes of assistance and found it in truckloads (Looking at you fellas in the #ProgrammingHelp area). I even contacted Tyler McVicker, who was kind enough to direct me to a fellow who, unfortunately for me, never responded to my message: which would be a recurring theme in my mod-file building adventure..

Now; I’ve managed to extract all the data that my little mind will let me. It’s nearly been a year since I started this journey… and it’s finally coming to a point where I have done as much as I can. I still need to update a few things before I release it. Fix up my notes and polish it a bit more. Soon, it will be in your hands and I really do hope you all can make some cool things with it!

Continuing the journey!

Currently, I’m working on understanding the .MAT, .SEQ and GUI systems within the game. Trying to find out how far I can push this game to be something to remember when talking about a CZDS mod.

Sorry for the wall of text, this is my first journal. Bye >:^>
Dr. Orange3 years ago2021-02-18 09:11:52 UTC 7 comments
[DEVICE CONTROL 4]
cambreaKer3 years ago2021-02-03 12:54:53 UTC 3 comments
so yesterday i played through the classic hit 2018 FPS game set in the Half-Life universe running on the source engine Hunt Down the Freeman.
i went in expecting the worst game ever but when i finished it, i felt like i've just played the best Half-Life game ever made. the emotional story, the characters, the amazing cutscenes, the wonderful level design and the fucked up face all came together to form the best experience i've ever played.

the game was also a great showcase of the power of Source™, with jaw dropping visuals and amazing landscapes.
the gameplay was also just a darn great time, i loved the feeling of shooting the guns, it really felt like i was Mitchell "Fucked Up Face" Shephard.
another thing i loved was getting my vehicle stuck on the ground sometimes, it really gave me the satisfying feeling of frustration and quickloading.
but the story, oh boy the story - it was so emotional it had me literally crying a couple of times, the voice acting was especially amazing, all that combined to form the ultimate feeling of being in the middle of the 7 hour war.

jokes aside, it was a pretty bad game, average at best. surprisingly they fixed a bunch of issues, i had no gamebreaking bugs or crashes. makes for a less broken game and more of just a bad game. it did have some fun parts though, i liked the storm on black mesa east, that was pretty fun. but the fun parts are pretty short, and once you start having fun, the game drops you into a shitty part.
i mean, i can't complain, i knew what i was getting myself into with HDTF, but it was a bit better than i expected.

now i'm waiting for HDTF 2 :combines:
:(
Corrupt_Specturion3 years ago2021-01-28 15:37:31 UTC 3 comments
Seeing all the people who haven't visited in >1 year makes me sad
satchmo3 years ago2021-01-21 16:22:36 UTC 5 comments
My son consistently bests me in any game we play together.

This was when he dominated me in my own map, dm_vertico.
HL2DM Vertico
Admer4563 years ago2021-01-05 22:12:27 UTC 3 comments
5th of January 2021, roughly a month after the last journal, "The adventures of BurekTech", a series where I document my progress with my ioquake3 fork.
Progress progress progress progress PROGRESS!!!Progress progress progress progress PROGRESS!!!

New ents

While this isn't directly part of the engine, some entity classes have been implemented:
  • env_explosion
  • func_button
  • func_bobbing
  • func_door
  • func_toggle (basically like Half-Life's func_wall_toggle)
  • trigger_once
  • trigger_multiple

Mapping limits and otherwise

960 entities being rendered, approx. 460k tris + 600 world tris + 50 viewmodel tris960 entities being rendered, approx. 460k tris + 600 world tris + 50 viewmodel tris
I've upped several limits now. Max visible entities are now 1024, max models are 1024, max sounds are also 1024 for now. Each of these were 256. Max brush models are thus also raised to 1024, I believe. Nonetheless, these limits are very easy to raise. It's just a matter of choosing sensible values, and for now, it's perfectly enough for me.

I've done some research and been reading the code. Max lightmaps seem to be 512, which is way, waaaaay more than enough for me at least. Max world faces (wpolys) are 131 072, max visleaves are also 131 072, max brushes are 65 536. Clipnodes aren't used in idTech 3, so I don't have to worry about those.

Stupid Mover Bug

While I was implementing and testing func_bobbing, I noticed a really bizarre bug with player movement. On the clientside, the player would "detect" the moving entity fine, and try to move along with it. But on the server, that wouldn't happen. Ultimately, the answer was somewhere in the serverside collision code.
Solid entities need to have an absolute bounding box defined in order to be taken into consideration when clipping against. My entity's abs bbox wasn't being correctly set up due to its origin. Quite an unusual thing. I decided to name it Stupid Mover Bug, inspired by the Stupid Quake Bug.

Custom compiler

Ah yes, I've FINALLY managed to clone gtkRadiant just to get its q3map2 compiler. It's cleanly written for the most part and it's not too complex for a compiler. Miles cleaner than VHLT, although I guess its light stage could use some neat things from VHLT...
The first thing I've done was adding Valve 220 support, mostly copied from XaeroX's J.A.C.K. version of q3map2. The difference is, It's a compile parameter now, -valve220. This makes it easier for us TrenchBroom users who like the Valve 220 format. Until TB gets patch support and brush primitives, it'll mostly stay this way.

Some other features I'd add to the compiler in the future include:
  • writing vegetation data
  • writing entity event data (a la Source I/O)

Crazy networking

User posted image
Near the end of December, I found out idTech 3 supports multiple instances on a single machine, which is AMAZING for basic multiplayer testing. This way, I can ensure co-op and deathmatch work. Coming from GoldSRC, this feels like discovering alien technology.

Animation system in progress

So, I was quite... saddened... to find out that you can't just place a point entity in the map, assign a model to it and an animation number, and expect it to animate. On the other hand, I was relieved to find out that idTech 3's animation system is literally 3 variables: frame, oldframe and backlerp. This is on the client. On the serverside, it's only one: frame.
I decided to add a couple of variables:
float    framerate;        // framerate of the animation
byte    animation;        // ID of the animation to play
byte    animationFlags; // look at AnimationFlags enum above
animationFlags will be a nice way of telling the renderer "Hey, I wanna handle animation manually, i.e. I wish to increment frames on the server", or "Hey, I want this to be looped".
Right now, models will only support monolithic animations, but in the future, they will support up to 4 animation channels. For example, the torso plays one animation, and the legs play another.

What's left til v0.1?

Several things. First, I need to remove every single mention of gentity_t, since all code related to it is dead, i.e. won't ever be executed. It just makes compile times unnecessarily longer.
Second, I need to finish writing the entity classes. I still haven't written func_ladder, func_breakable, func_train and so on.
Third, I need to implement the animation system.

What's left for the (far) future?

A TON of things.
  • a vegetation system so game entities aren't used
  • rewrite almost the entire UI system (because my GOD, it's so inflexible)
  • hitboxes (that's correct, there are no hitboxes in idTech 3)
  • write a "GUI-in-world" solution that either renders to a texture (so it can be wrapped) or directly renders the polys in the world (significantly cheaper but only works on flat surfaces)
  • a save system
  • a subtitle system
  • an optional day-night cycle that alternates between a number of external lightmaps
  • projected light textures (think HL2 flashlight, GMod lamps)
  • various sky additions (e.g. blending skyboxes, thunders etc.) etc.
Some of these will make it to 0.2, some will be in 0.3, some won't be until 0.5.
Right now, however, I'm working on a game demo with this. It will be in a different repository, once released, and various features will be ported.

Edit: SMH I should really make a blog somewhere
Suparsonik3 years ago2020-12-30 02:17:38 UTC 10 comments
Today marks the first day of me being officially on HRT! I've only been waiting like my whole fricken' life for this moment.
Strider3 years ago2020-12-05 02:06:43 UTC 7 comments
You've probably noticed them.

We're slowly going to be adding more to feature our unique maps. If you have any recommendations, chuck 'em in the comments here.

We probably won't be doing too many so people aren't forever loading new ones, but what would you say are the must haves?

Edit:
Hard mode: no Mission McPoker
Admer4563 years ago2020-12-01 19:27:28 UTC 5 comments
As I don't feel that this belongs to any forum category, I've decided to write about it in journals.

In my last journal, "GoldSRC + Godot = ???", I wrote about the idea of a game engine/framework built on top of Godot, that aims to have a workflow very similar to GoldSRC. You can map for it with J.A.C.K., TrenchBroom, or even Hammer in theory, AND sell games made with it. Then I stopped working on that and moved back to my ioquake3 fork, BurekTech. Same idea, different engine.
WE SQUASHED THEM BUGSWE SQUASHED THEM BUGS
3 big issues were closed this month, pushing the completion from 11% to 29%. I ported a good chunk of the game code from C/idTech 3 way to C++/BurekTech way.
What this means is, instead of a bunch of global functions and structs, I now have some classes responsible for the game logic (entity spawning, for example), as well as some entity classes. So I didn't just rename all .c files to .cpp and fix the compile errors.
Looks like a ghost town when no entities are 'roundLooks like a ghost town when no entities are 'round
After all the remaining required functionality is ported (spawning temp entities, selecting a spawnpoint (the player spawns at 0,0,0 at the moment), making sure MP works), the next step is to re-implement some important trigger_, func_ and info_ entities. Then write some utilities, like for gib spawning; a basic AI for NPCs (the Q3 bot code is big, no way I'm porting that soon D:); and, maybe not immediately, a save-load system.

Another concept I had was entity semi-components, but certainly won't be in version 0.1.
User posted image
BurekTech is not really an engine IMO, since most of the work is done in the game library. It's not an engine-agnostic game framework either. It's like... a game base? I dunno.
With that said, BurekTech 2.0 should be initially based on a different engine like Godot (partially due to licencing), most likely as a plugin. The idea is still gonna be the same. The folder structure is still gonna be (largely) the same. You get the point.

Anyway, I hope that BurekTech will be ready enough by the end of December, so I can start making a game in January. Or in February. It's gonna be a medium-paced retro FPS, set in 2033 Bosnia. I might post a few screenshots in the WiP screenshots thread.
Admer4563 years ago2020-10-24 12:12:40 UTC 4 comments
My last post in "Post your WiP screenshots" was about my modification of the idTech 3 engine. Now I decided to take it to the journals, since it's ultimately unrelated to Half-Life. But not entirely.

Simply put, the ideas are:
1. Have a GoldSRC-like folder structure: maps, models, sound etc.
2. In mapping, work with it almost as if it were GoldSRC or Quake (this means you make the map in J.A.C.K. or TrenchBroom or whatever)
3. Don't use any Half-Life asset formats or anything from the HL SDK
4. Keep the aesthetic of GoldSRC

It's mainly for folks like me, who are too used to GoldSRC but still wanna make standalone games using archaic methods.
I moved the project to Godot, primarily due to licencing. Not being able to use certain libraries, due to GPL, sucks.

Now the challenge is even more interesting, because I'll need to build a "game engine" on top of Godot - something vaguely similar to what S&box is doing; also somewhat similar to what SharpLife is doing - because I wish to keep the GoldSRC-like workflow: make a map in an external map editor like TrenchBroom, export, compile, and put it somewhere in the maps folder. Then run the engine, open the console and use the map command. No Godot Editor involved.

One neat thing I'm planning to do is manual VIS, since there's no VIS in Godot, or rather, no occlusion culling system. Manual VIS, done in the map editor, would look like this:
CryEngine Sandbox Editor manualCryEngine Sandbox Editor manual
How you'd do this in J.A.C.K., I imagine, would be to place two big brushes textured with VISAREA, each encompassing a room they're associated with, and between them, you place a smaller brush textured with VISPORTAL. I believe that humans are more efficient at optimising a map than the compiler. Anything outside of VIS areas (isn't encompassed by any such brush) would be treated as the outdoors, which is never rendered from the indoors, unless the player sees a special VISPORTALEXIT portal.

Here's an illustration:
User posted image
Normally world brushes; I only used func_wall to get the transparencyNormally world brushes; I only used func_wall to get the transparency
The compiler would have to strip off the NULL faces etc., mark which face is in which area etc. and that's about it as far as the basics go. In that early state, maps will have to be made in a specific way, for example, you'll have to cut brushes wherever two VIS areas meet:
Kinda tedious, I knowKinda tedious, I know
If I develop the compiler any better, it'll automatically cut stuff where two areas meet, which is basically what Doom 3's map compiler does.

We'll see where this goes. Worst-case scenario, I'll just go back to idTech 4 and dumb it down lol.
monster_urby3 years ago2020-10-17 23:17:25 UTC 17 comments
I dunno about you folks, but personally I take my mediocre 2002 Vin Diesel action movies intravenously.
zeeba-G3 years ago2020-10-15 16:23:54 UTC 13 comments
After mapping for Goldsource for 16+ years, it's time for something different.

I've been messing with Unity and learning C# in my spare time.

I want to make very simple 2D games and have already started a simple platformer.

So far i've programmed my character to respond to the arrow keys and move side to side and jump. He also plays his idle and walk animations. I did so by following along tutorials on YouTube but took a step back to run through tutorials on C# in general. It's a huge beast to understand for someone like me but i'm very slowly beginning to understand the fundamentals.

Does anyone here have experience in Unity?
Suparsonik3 years ago2020-10-05 03:24:31 UTC 12 comments
A quarter dollar in USDA quarter dollar in USD
Rimrook3 years ago2020-10-04 12:16:55 UTC 7 comments
One time I actually did put Ovaltine in eggnog. Ovaltine is a type of chocolate mix full of vitamins for those who don’t know what it is. So I drank an incredibly dense shake of the stuff. Needless to say I didn’t eat the rest of day. It tasted interesting to say the least.