Journals

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 4 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.
Archie3 years ago2020-09-01 18:25:33 UTC 11 comments
No, it's the trials and tribulations of some of the worst z-list heroes ever to grace our planet. The English language has a crutch in the form of adding ', man' to the end of sentences (e.g. 'it's really cold, man!') We remove the comma, and the resulting terrible superhero (Really Cold Man) is put through their paces by the literary genius of four morons with a combined writing experience of 'some'. It's stupid, it's funny, it flies off the rails far too regularly. It's The Worst Superheroes podcast.

Urby, AJ, Scoots and myself have been sitting on this for like three years, and I figured we really should get round to releasing them. Look forward to an episode every fortnight.

Ep1 is a bit shit, but by ep3 I'm legit convinced we're onto a winner. Give it a listen and let us know what you think :)

Apple Podcasts (formerly iTunes)
Spotify
Deezer
Podcast Addict

User posted image
Draeger3 years ago2020-08-30 13:37:51 UTC 4 comments
Yesterday, I decided to make some chlorine and try and ignite some iron. So I got my bleach and my hydrochloric acid and filled 100ml of chlorine bleach into a beaker. Then I dropped some hydrochloric acid into the bleach. It exothermically reacted to evolve chlorine gas.
NaClO + 2 HCl → NaCl + H₂O + Cl₂

Then I took a piece of iron wire in tongs and heated it with a handheld burner until it glowed bright white. Then I held it into the beaker. Red smoke started coming off of the iron.
2 Fe + 3 Cl₂ → 2 FeCl₃
The red smoke was subliming (turning to gas without melting first) iron(III) chloride.

By the way, chlorine smells like salad at lower concentrations. At higher ones, it smells like someone shoving a plate of salad into your face. It also looks like salad gas. The salad element. Also I have a fume hood so I took no damage except that it wasn't strong enough so the house smelled like chlorine, but it was still a safe concentration. The odor threshold of chlorine is 0.002 parts per million, and immediately dangerous dose is 10 parts per million.

So, hello. I'm Draeger.

I created an account here since I thought it'd be fun to join a forum about modding and journalling it all and making some progress by asking for some help. But nope, plans destroyed right now since:

I have an asshole "friend" who's probably some psychopathic sociopathic own personal hell mix thingy. Not so cool. He's controlling.. well, it's easier to count up what he doesn't control. He doesn't control stuff I do at home when I am offline, well, mostly offline. At least on the 20 things where he's on my friends list, stalking my status.

We met in primary school, obviously a long time ago. It was fun, we were so similar. He was lying a bit to make me like him more, but he said sorry later. But then he started being forceful. Controlling my opinions. Getting angry at me if I didn't come online every day. Or took a few seconds to answer his calls. "I was on the toilet, though..", he: "Well, you should've put your status to idle, then! God, I have to tell you everything...". But then he's so nice again, suddenly I did something bad and he's like "Ah, it's alright. Next time, just tell me immediately. Alright? :)", and that way, I guess he sort of got a mind control on me. When I do something good, he treats me nice, when I do anything bad, he immediately sends me off to personal hell for a while, and then is like "Don't do it again, and everything will be nice and pleasant." and some part of my brain now prevents me from leaving him, since I'd hurt him, I guess. Whenever I try, I just stop again and say sorry 20 times and go off to personal hell again, just to remain his friend, even though it's a very horrible experience that has already scarred me in a way:

One time he allowed himself to do some sadistic prank, where early after primary school, in the school after that (I live in Germany, you change school here after 4th grade) lots of us younger people told stories of older kids punching younger kids for fun and stuff like that. And he told me that someone was chasing us. I have diabetes, so that eventually nearly killed me, since I got a severe hypoglycemia, but we managed to work it out by me just throwing like 10 plates of sugar into my mouth until I couldn't eat any more. Well, after that I had many panic attacks nearly every time I went outside, or stood still, or tried to lie down in bed. After a while, it got better, but I still have agoraphobia and claustrophobia and other fun stuff like that.

Well, and I can't leave him since I get a deep feeling of having done something horribly wrong every time I try it. I feel like I am murdering someone when I try to. So no way I am able to leave him, and every attempts by friends and family to get me to have failed. There's looots of things I'd do to not have to leave him.

Well, why am I not able to get access to Half-Life 2 right now? Well, I have been offline for more than a week now. He's probably very angry, and I am very scared of going online since then he sends me off to our hellish fights again. And since you can't seamlessly go from offline mode to invisible mode in Steam, I can't access anything without going online, and since he'd probably immediately notice it's just not possible.

Which means I'll probably just talk about off-topic stuff here, if at all, right now. I'll be forced to face him because of school anyway, so that's when I'll start Half-Life 2 development I guess, if he doesn't force me to play with him for weeks or even months at a time again.
Shepard62FR3 years ago2020-08-29 09:01:41 UTC 6 comments
  • You likely played that known game, even be a fan of it and there is even a remaster of it.
  • The original source code has been opened recently.
  • A libre/free port exists.
If you guessed that game, take the current year (2020) and substract it's release year.
Admer4563 years ago2020-08-02 16:31:49 UTC 13 comments
Yes. I even carried it across the field in front of my house.
User posted image
They were a little heavier than I thought TBH.
I am definitely surprised that Gordon could pick these up so easily, albeit, cinder blocks in HL2 are definitely smaller compared to these, lol.

And no, this is not a birthday journal.
Dimbeak3 years ago2020-07-30 12:35:04 UTC 7 comments
approx. $6,222.72 at time of writing in shares of Vanguard S&P 500 ETF