Journals

Admer4561 year ago2023-02-23 08:38:54 UTC 9 comments
Mmm feels like 12 but in reverse. Haven't had the cake yet tho'.

I've been spending the past 3-4 days with my boyfriend, absolutely love the lil bastard. He'll be here for another 7 days, but either way, I am terribly happy. I got to experience my first kiss, which was one hell of an experience. We've gone shopping together, I showed him around all kinds of places, showed him a bunch of food here (ćevapi, kebab, Mum's potato & cheese pie), and we've still got a lot more to do~

So yeah, this is life for me. Spending time with a beloved one. I love the feeling. I haven't had a hug in a very long time (5 years!!!) and now I am getting those every day. It feels absolutely amazing and I don't wanna trade it for anything else.

You know, a time ago I said to myself I'd take a break from programming to just enjoy life a bit. That never really happened. But now it's happening, so it's kinda nice, not having to think about my engine project, or ADM, or the HL SDK series... is this what vacation feels like?
Admer4561 year ago2023-01-26 21:34:18 UTC 10 comments
2 years ago, I proposed this silly little idea. TL;DR imagine if you could have a GoldSRC-like workflow but in a modern engine. After all, wouldn't it be a dream for some, to be able to make full-on games in a modern engine, without any of GoldSRC's limitations?

Note: This is aimed at gamedevs who 1) want to make games the way they make HL mods 2) want their games to be moddable out of the box

So, about 2 and a half years later, here I am, coming back to this idea.
I've sailed the seven seas, climbed all hills and mountains, grown, learned, made friends, contacts, partners, all kinds of things in the meantime. I've worked with various idTech engines and their respected forks, Unigine, CryEngine, Unreal Engine, Unity (almost got a job in this, well, almost), NeoAxis, Flax Engine, Source 2 even... none of it was really a good fit for my idea.

Unigine came the closest, honestly. Nonetheless, I, one day, decided to start writing an engine from scratch. Virtual filesystem, input system, windowing, console system with CVars and commands, plugin system, all kinds of systems. Worked on it for 13 months, and it got somewhere for sure.
User posted image
But then, something odd happened.

History repeats itself

Godot 4 alpha something came out with the claim that they merged .NET 6 to replace Mono. I like .NET more than Mono (it's what they use for C# scripting). I just had to check it out. After a couple nights recompiling stuff and messing with NuGet packages, I was able to get a working build with all tools. And it was LOVELY. I compiled it to try out modern C#, stayed for the UI system and all the flashy new toys they added, and most of all: volumetric fog.

I got absolutely mesmerised by it. I love fog. I love smoke. I love volumetrics in games. I fell in love with the thing. That + a few other things motivated me to consider rebuilding my engine on top of Godot, if that makes any sense. I then remembered the article I wrote over 2 years ago, and it is true what they say - history repeats itself.

And you know what? This time I actually have the skill, time and patience to actually do it! But FIRST, I needed to make sure it can actually even work.

Payback time

Do you know what's the purpose of a proof of concept?

The PoC, internally 'BodotPoc'The PoC, internally 'BodotPoc'
It proves a concept. It proves that the core idea can certainly work, and is worth prototyping. And that's exactly what you're looking at. This was a pile of code in a single Godot project, that could read Valve220 .map files, and let you move around. In the 2 weeks I programmed this thing, I learned a lot more about Godot than I did in the last 2 years.

After that, it was time to start working on the real thing.

This diagram here below, this architecture, is what gives me a great deal of convenience. I can work on the launcher, engine and games/plugins separately, without the need to re-export a Godot project if I just want to modify the "engine".

Plugin architecture overviewPlugin architecture overview
Now, before someone says "Ayo, what the HELL are you doing?", let me tell you this first: Godot is not just a game engine. It's a game engine, engine. Alright?

An engine engine. With Godot, you build your own workflow, you combine some things that you like and you use that unique combination of those things to make your game. My case is just a very special one.

In fact, here's a quote from one of their recent articles:
Godot, at its core, is and will always be (by design) a very general purpose game engine. This mean that the tools provided, while certainly capable, are still game neutral. The goal for Godot is to provide a great set of building blocks that can be used and combined to create more specialized game functions and tools.
(taken from Godot for AA/AAA game development - What's missing?)

I don't know about you, but I definitely see Godot this way. Maybe I'm more radical about it. Either way, I cannot think about making games, until I have a workflow that I truly love and am comfortable with. Godot gives me a foundation for that.

The dream

In the end, I just hope to have my dream come true: making games the way I make Half-Life mods.
And by that, I mean: making commercial games with modern technology, the way I make Half-Life mods, with modern tools and mostly without any of the bad parts of the workflow that make it incongruous.
  • I don't like the SMD+QC workflow, I just want to import a GLTF and be done with it. It is a reality we can have in HL modding even, and I'd like to write such a tool one day. It'd help beginners tremendously, I am certain in that.
  • I love the mapping workflow, but I'm not a fan of the BSP limitations. We're all very ambitious, and limitation breeds creativity... but not when that limitation is a few centimetres above your head. Can't even jump, let alone fly. Just look at AllocBlock or clipnodes. You don't want that in a modern engine, do you? An octree-based solution - as opposed to BSP - would fit this engine of mine, and even play with Godot 4's occlusion culling system pretty well.
There's several other things I could talk about, but these are the main two. Every modern engine I've worked with (except Source 2) basically had those 2 arguments up there flipped. The modelling workflow was great, mapping was not. Can I have the best of both worlds? Somehow, I convinced myself I indeed can.

At the moment

So, right now, we have:
  • a plugin system
  • a virtual filesystem with Source-style game mounting and folder structure
  • a console system
  • a placeholder game template that loads TB maps
Where we're at nowWhere we're at now

Folder structureFolder structure
What's missing is frankly a lot of stuff. Animated models, audio, networking, a main menu system, AI, mostly the need to build a proper game SDK, and flesh out parts of the engine. I have lots of ideas I want to experiment with, including entity components.

Here's a monthly breakdown:
March:
  • map compiler
  • interactive console from BTX
  • asset loading
April:
  • networking
  • more accurate Half-Life-style player movement
  • standard map entities
May:
  • material system
  • basic main menu
  • a bit of documentation
  • the first developer preview
And yeah, my engine project now has a name: Elegy.

Either way, I hope to get a little game demo out by June or July. I'll be reimagining my very first game project, so that will be fun.

Right now I gotta test Elegy on Linux, deal with college and all that other stuff. See ya until then. I may eventually create a website for this project so I don't have to post about it here all the time, though it is kinda nice.
Admer4561 year ago2023-01-20 16:58:35 UTC 3 comments
Loss is typically a bad thing. There's various types of it too. You got the loss of a beloved one, blood loss etc., but today I just feel like writing about the good kind, at least for me: weight loss.

It'll be rather brief, as I'm short on time these days.

History

In 2008 or so, when I was 6 years old, I was pretty standard and slim, something I absolutely cannot imagine today. I recall being able to do 10 to 20 push-ups at age 8, and I felt agile in all kinds of ways. I was perfectly alright.

In 2012/2013, I must've been about 160cm tall. But I also clearly remember weighing about 70kg. Every day, I'd eat a couple bags of chips, drink a can of Coke, and certainly a whole lot of fast food. Hot dogs, fries, pizza... I also ate considerably a lot. As a result of all that, I felt like a Pentium 4-630 trying to perform basic tasks in this day and age - very sluggish. It was somewhat difficult to stand up, let alone move.

It didn't get all that much better by 2016, either. I was probably 170cm tall, weighing almost 80kg. I felt a little better though, somehow I got stronger.
2017 and 2018 saw me reach 85kg or so, and I was around 175cm tall. My height hasn't changed much since, I'm 176cm now, so we can stop mentioning height.

Now let me tell you something. In 2017, I started walking A LOT more, because I had to walk from the bus station to high school and back every day. This amounted to about 30 minutes of walking each day, 2.5 hours of walking every week. In 2019, I was extremely relieved to see my weight hit its ceiling, or at least it seemed to. I also ate significantly less than in 2015, so that helped.

Then, 2020 happened, and so did the pandemic, and online classes started. I was no longer walking, in fact I stayed at home way more than I ever did in life. Within a year, my weight skyrocketed to 91, maybe 92kg at some point. I think I felt destroyed when I realised that. It all contributed to me feeling not so good that year.

2021 finally arrived and I soon realised some things after I finished high school that year. I didn't have P.E. class IRL whatsoever, it was all online. Most classes were IRL, but P.E. was online, among two others. Thing is, there was no P.E. at all any more. So that made me think about some things rather critically.

Change

I realised I could change some key things:
  • Lack of exercise -> light exercise, walking outside regularly. Later I realised I primarily wanna focus on cardio stuff and secondarily some strength training - don't have any resources for the latter though. Still, exercising is good.
  • Eating a lot -> eating enough. This one has been the MOST CRUCIAL to me. Just eat less. It's SO simple, it was in front of my nose the entire time, yet I failed to stick to it for so long. Thankfully I now finally have the ability to resist the taste and only eat to satisfy my hunger, no matter how loud my taste buds scream for more.
  • No more chips and snacks like that. Just no. Pure unhealth. So much salt. I'd only eat one of these as a last resort thing.
  • No more Coke - only once every New Year's Eve. The amount of sugar in that thing is absolutely gargantuan.
  • Reduce chocolate by 80%. Sugar. I have enough of it in fruit I eat.
  • Reduce other carbonated drinks by 50%. Sugar again.
  • Drink more water. I noticed I rarely ever drank water, and ever since I started doing it regularly, I've felt less bloated.
  • Eat far less generic white bread, and try healthier kinds of bread (e.g. whole-grain bread). Whole-grain bread doesn't taste as well as white bread to me, and it isn't so soft to chew, and honestly? That's a good thing, means I won't be able to eat too much of it! Hell yeah.
It wasn't too easy. I clearly remember the first couple weeks I was just CRAVING for chips, chocolate, some juices etc., but I managed to resist the urge. I haven't eaten chips in over 6 months now, and I eat chocolate on some occasions. Once you realise that the food industry wants you to be addicted to foods like those, it becomes a bit easier to fight the addiction, at least it was for me.

Anyway, from early 2021 to the start of 2023, without me even noticing it, I went from 90-ish kg down to 84kg. It is absolutely unfathomable to me that, after nearly 20 years of non-stop gaining weight, I somehow started losing it. You have no idea how relieved and happy I felt when I measured that, and I hadn't measured it in a loong time.

In retrospect

While I was growing up, I honestly believed it's all about exercise. Gotta do them push-ups, gotta do them sit-ups, planking, weight lifting and lots of running. But honestly, that's just part of the story, and you don't need to be that devoted to exercising in particular if you just wanna lose some weight. Unless you'd like to build some muscle, of course. But no, what I realised was, all I really needed was to just eat less.

It was that simple. It was in front of my nose the entire time. Just. Eat. Less. It helped a tremendous lot that I had experience fasting during Ramazan/Ramadan, so I was able to really easily not feel hunger at all, let alone ignore it. I guess it's one of the few good things religion gave me.

What made me realise I lost weight is ultimately a couple photos: one from late 2020, and one from a few months ago. I can CLEARLY tell the difference on both my face and the rest of my body. But what really fascinated me is just how much of a difference those 6 or 7 kilos made. It's striking. It's not so much about the numbers, but rather how seemingly very small changes in habits led to such a damn positive long-term effect.

Recently, my cousin suggested me to go to the gym with him. And honestly I think that'll do me some good.

TL;DR? I decided to identify and cut the bad food, eat less overall, and take walks. I lost about 6 or 7 kg in a year as a result, and I'm feeling good about myself for the first time in years.
Admer4562 years ago2022-09-04 19:57:37 UTC 2 comments
Since I've told this story to people numerous, numerous times on Discord and I'm tired of repeating, I'm gonna tell it here once and for all.

TL;DR I fried eggs this morning and I made pizza tonight. Skim the journal for pictures.

I'm gonna tell you one thing now. My mum makes bad pizza. Just keep that in mind.

Lemme introduce you to what happened tonight by telling you what happened approximately 10 years ago. I was 10 years old and it was evening. Dad arrived home from the military, and Mum was making dinner. I was, of course, at my PC. Where else would I had been? Dinner was ready and Mum called me. Naturally, just like my brother now, I've always had a bit of a delay before getting up to go to the kitchen. Stuff on my computer was just way more interesting. This time though, I was hungry.

What I saw on the table was a good-looking, delicious rectangular pizza, cuz' Mum used to make pizzas back in a rectangular oven pan back then. I think the crust was homemade, I don't exactly remember. It was nice though, and I'd always eat a whole lot of it. She'd ask me if I'd like mushrooms on it next time, and I said yes. That one was also pretty nice. I liked it quite a bit. The crust was always very crunchy (not hard!) and it was really nice.

Fast-forward to 2020, that is 8 years later, I was in high school, and I got the 'rona. This changed my sense of taste forever. I stopped eating pizza for the longest time because hers became so... oily and rubbery to me. I didn't like it. Even though I seem to have fully regained my sense of smell and taste roughly 5-6 months later, my mum's pizza was never quite the same...

So, I simply didn't want it any more. I found the pizza in actual pizzerias and restaurants to be very nice. But I was quite intrigued that my mum's cooking seemingly deteriorated. I was not sure what was going on with that. I remember really damn well that Mum's pizza was pretty okay, even though it wasn't on the level of, well, even how cheap bakeries do it. I love pizza from the bakery, it's got a personality of its own. It's like a child that sees these cowboys in 60s western films and tries to act like them. I like the effort and it's definitely got its own sorta thing.

But I stopped liking Mum's pizza.

Later in 2021, I randomly had a thought:
"What if you boiled an egg, then fried it afterwards?"
I was, like, legit curious. This is my shower-thought curiosity at its finest. I google this thought and found out about tiger skin eggs. They look something like this:
User posted image
I came across a video that details how these are cooked, and I was like "Hmm, honestly, I could probably do something like this one day, doesn't even seem hard!"
I discovered a bunch of cooking channels, but a few truly stuck with me: Adam Ragusea and Binging with Babish. One gives me practical ideas, the other gives me less practical ideas because I don't have most of the ingredients here. But lemme tell ya. Ragusea's videos on pizza opened my eyes and things started to click.

You have any idea what kinda pizza my mum was making? She wasn't making a pizza, she was making bread with ketchup and hard cheese on top of it. Oh, and Poli bologna. Honestly that thing isn't even bologna, it's just a heavily-processed chicken sausage that stinks and makes me wanna throw up whenever I see it.
These were the two main enemies:
User posted image
To the left, you got the Poli, to the right, you got the "livada" cheese, which can be translated as "field" or "flatland" or "a plain". It's a type of hard cheese and doesn't melt well, that's all you gotta know really. I don't have a picture of how this pizza looked, but lemme tell you, it is horrible, I'd never eat it again. I can't eat it again after I've been to several good pizzerias.

Oh, and lemme tell you, we still use canned mushrooms. Mum didn't bother drying them, neither did she preheat the oven pan. She was doing everything wrongly. So, it turns out, when I was little, I simply didn't know better and accepted this kinda """pizza""".

All of this made me attempt making my own. Initially I mostly followed Mum's way but I used turkey ham instead of Poli, and later I started swapping things out for other things. Replaced ketchup with some type of tomato sauce (still not exactly the one I am looking for, but it's good enough), replaced the cheese with a mixture of mozzarella and gouda, and it was a substantial, fairly noticeable improvement. But something was still missing and I was a real beginner, so I didn't quite put enough cheese, and I often overcooked it.

Also, the "tomato sauce" we got was like, yeah, it was weird:
User posted image
Apparently this is some sorta already-baked tomato sauce? Either way, it got mega stinky after a few days.

But this time, I decided to REALLY up my pizza game. Like, really really good. 2 nights ago, I stayed up until 4 in the morning, binge-watching cooking videos and I got several new ideas on how to improve my existing thing:
  • actually dry the mushrooms and cut them thinner
  • preheat the oven pan
  • put lots more cheese
This time, it wasn't mozzarella and Gouda, it was mozzarella and Edam. Still, very good combo, I just wish I had some more mozzarella at hand. I made my brother's pizza with some turkey ham bits and the usual (without mushrooms though). I put it in the already very hot oven pan, and waited for about 5 minutes before getting it out. I then frantically ran around because I realised the dinner table wasn't set yet and I had nowhere else to put the pizza, so I just put the pizza onto the table, no plates, no anything. I quickly grabbed another pizza pan though and put it right in there, as the preheated one went back into the oven. That was quite chaotic.

Also, the tomato sauce I was using this time was a bit different. It was brighter and it smelled a lot nicer. This one seems to be the uncooked kind, it even had some veggies inside and decent, chunky bits of tomato. Perfect IMO.

Now, here's the fun part: it was my pizza's turn. Oh boy. I made it as usual, putting the tomato sauce, putting the cheese, putting some Mediterranean spice mix on top, and I put my dried mushrooms on one half of the pizza, just so I could see if it'll be better or worse with them. Guess you could call it a half-fungirita, eheh?

And then a moment of pure genius struck me as I quickly snatched a bottle of olive oil and poured just a little bit of it (maybe 3 quarters of a teaspoon) on top of the pizza. I had no idea what the result was gonna be. I just knew I had to do it. FOR SCIENCE!!!

Now, I realise this ain't the best pizza in the world, and it surely could be better in many ways, but it's a huge step up from what I've been making before, and especially compared to my mum's pizza:
User posted image
See the yellowish, orange-ish spots in the centre? That is certainly the oil!

That... was damn good. I loved it. Mum tried a slice and asked me if I could make 4 pizzas like that for the family. Honestly, if your overly picky brother eats the crust, you know you've made a good pizza. Or maybe just something he prefers more. Either way, I'm glad I got to see that in life.

Now in completely other news, I also fried eggs for the first time and that was pretty good... I'm going for a cheese omelette next time.
I woke up thinking "I am frying eggs and NOBODY can stop me" and I legit set out to do that. Very good decision. First time frying an egg BTW!
How it startedHow it started
(yes, the basement IS the kitchen here, you lucky individuals)
How it endedHow it ended
It was crunchy around the edges, which I liked, however I would've preferred a softer yolk. Overall, I enjoyed it more than the alternative, which was to grab something from the fridge, like a pathe, or turkey ham. I was also advised to use medium heat instead of high heat next time (thanks Zode!) and I will do just that. It was very epic either way and I got satisfaction out of it.

So yeah, thanks Mum, for having such bad cooking that motivated me even more to start cooking myself. One day, I gotta cook a steak, mmm... I've already done chicken fillets and I definitely like that. I gotta do it more, honestly.

Now, the next thing I wanna do is try cooking some sorta frozen döner kebab meat. I don't have a picture, but just imagine döner meat, whether chicken or beef, in some sorta package that sits in the super cold top part of your fridge. Here's the thing now. So far, I've been heating it up in the microwave, but you know what microwaves do to food... they make em soggy and in kebab's case, very soft and kinda moist. I don't want that.
So I'll see if I can heat it up in a frying pan next time or in the oven. I am not sure how that'll go, but maybe I'll get some better results than in the microwave.

Also, I may have mentioned a panini press, maybe not, but lemme tell ya, I use that thing for everything these days. I love it. When Mum boils hotdogs and I feel like a troll, I just panini press them after the fact. It is immeasurably useful when it comes to bread and stuff.

Either way, congrats for reading all the way to the end, I am quite impressed, not gonna lie. Happy eating, folks.
Admer4562 years ago2022-02-23 10:32:10 UTC 7 comments
Hello, population of The Whole Half-Life. It is a good day today. Speaking of halves and lives, I feel that a good chunk of my life has passed.

0 to 8 was kinda cool. 8 to 11 had some bad moments but it was okay. 11 to 13 was awful.
However, 13 to now has been awesome, so let's just say, it has passed in a pretty good way.

So yeah, life has been kinda good. I made pizza last night and that was good too. Pretty good actually. In the last 6 months, I've started doing some things I really like:
  • making food because I got bored of Mum's cooking
  • throwing spears with my cousins
  • cutting down thorns
It's a way to enjoy life for me, and it's kinda cool. Especially cutting down thorns.

I could talk about some other plans I have at the moment, but I'm lazy, so I'll leave that for another journal maybe.
Admer4562 years ago2021-12-23 20:21:32 UTC 7 comments
Yep. Cambreaker recently accidentally gifted me Hunt Down the Freeman, and chances are, I might stream it on TWHL Discord on Christmas.
User posted image
It's a bit early for me to say "merry Christmas", so I'll wait a bit. User posted image
Admer4563 years ago2021-06-12 17:54:04 UTC 6 comments
So in my last journal, I talked about a bunch of things. How I'm finishing high school, how I made a game prototype and wrote a 48-page thesis about it etc.

This would be the sequel, "what happened next". I'll keep this one kinda short. In a nutshell:
  • On the 3rd of June, I entered the game development competition, and made 2 new friends cuz' they also made a shooter and I liked their game
Me briefly mentioning my ioquake3 forkMe briefly mentioning my ioquake3 fork
  • On the 4th of June, those 2 friends and I made it to the top 3. I was 1st, they were 2nd, and some other guy was also 2nd cuz' they all had the same points.
Spreading the word about TrenchBroom ;)Spreading the word about TrenchBroom ;)
Teh trailerTeh trailer
  • On the 7th of June, I officially graduated from high school.
I'm gonna sign up for the local IT college. I just have to. I don't like academic stuff, never really liked school, but I can go through 4 more years of it, cuz' without a diploma, hardly anyone's gonna take you seriously here. It's just how it is.

So once that's done, I can initiate

Teh Epik Master Plan IV

I also showed it in the last journal, somewhere in the comments. People who have been here for a long time know what the original was about (my advice: it's awfully embarrassing, don't read unless you're into that stuff). However, the latest revision of this plan roughly predicts how long it'll take for me to form a gamedev studio here. A fairly optimistic estimate is 4 years, assuming that everything goes well and I have a job the whole time. A less optimistic estimate is 10 years, which is still manageable and short enough for me.
User posted image
Essentially, the plan happens in 2 stages: one-offs and saving:
  • "One-offs" are quality-of-life improvements (like hardware upgrades) and other one-time expenses (like a VR headset or electronic components). In this stage, I'd be living with my parents because it's a lot cheaper. Once this stage is done, or a week or two before it's done, I'll most likely move out, so I can be closer to the workplace. :>
  • "Saving" refers to the stage where I'm pretty much saving up money so I can run a game studio for at least 2 years, most likely alone. The budget accounts for the company registration, paid activities needed for the game (e.g. voice acting), an accountant, a lawyer, and other costs. I'd be additionally spending a minimum of 12 000 KM (approx. 7000€) per year per developer, so until I achieve really big profits, that's just not gonna happen.
What I ultimately want to do is just make games & sell them on Steam. So, in my little pockets of free time during college and holidays at work, I could probably work on a single game, so by the time I want to open the studio, I already got most of the game finished. If there's any success, great. If there's major success, even greater.

Having read through Bosnian tax laws, it appears that Bosnia's tax baseline is 10%. So if you make 10 000 KM brutto, you get 9 000. However, taking into account Steam's 30% cut before taxing (AFAIK that's the order in which cuts go), I'd be left with a total of 6 300 KM. Of course, there's more than that to it, like amortisation, paying the lawyer, paying the accountant etc. So to be safe, let's just say 5 500 KM.

I haven't seen any data for the sales of the kinda games I am planning to make, so I can't provide any estimate on that. I'm pretty sure there's a market for half-likes out there though. :]

The plan will go through a couple of more revisions. I haven't taken into account certain types of expenses, accidents/emergency cases and such. So far, it's less of a plan, more like a guideline.

Oh, and don't worry, I'll find some time for HL modding. If anything, I'll keep working on my HL SDK tutorial series.
Admer4563 years ago2021-04-16 09:47:15 UTC 8 comments
If you don't wanna read through this whole thing, just scroll down until you see "The brick" heading.

Yesterday I had a Bosnian written schoolwork, where I had to write whatever about a chosen topic, whether it's an essay or a short story or whatever.

So, the topic was, "I'm opening a new chapter" and daaaaaaaamn I started thinking about it, inspiring me to write this journal today. Let's roll back the tape a lil bit!
Let's go to... 2017, one of my most memorable years, and the one I'm probably still stuck in.

The end of an era

29th of May 201729th of May 2017
I was right at the end of 9th grade. It was Monday. I think we went to that school a day or two more, before we were finally out of it. I remember being so clueless, yet determined to sign up for an engineering school in Mostar.

Being a kid from a village near Stolac, without ANY prior experience going to a city alone (always went with my parents, but only because they took me with them lol), I couldn't imagine going to the bus alone, and walking the streets alone, and EVERYTHING. It was terrifying to say the least. I grew up in a village without kids, so I had nobody to hang out with. I talked about this years and years ago, so I don't wanna repeat myself. TL;DR been very lonely for years and had absolutely no experience in social interactions, so I was very weird and embarrassing, until 8th grade at least.

Now, my parents wanted me to go to the local general high school, where I'd have all the same classes from elementary school, just in more detail. I didn't like Biology, Geography, Music class (for reasons you probably don't think of), and a couple of others. Chemistry and Physics were fine, but they felt like a chore at times, same goes for History.

And, truth be told, it would've been easier for me in the short run. Familiar place, familiar people, and it's right next to my elementary school, so it ain't any farther. Later on, I realised going to an engineering school in a whole other city was, in fact, the better choice.

New opportunities

Technical Drawing miseries, winter 2017Technical Drawing miseries, winter 2017
At first, I think I had some regrets. Particularly due to Technical Drawing which was insanely difficult to get a good grade in, due to my shaky hands and slightly bent fingers. Electrical Engineering was a pain too, because the teacher was old and very high-standard. Squeezed everything out of you in order to pass. If you got any higher grade, it was because of luck. Nonetheless, I consider myself lucky.

She did make me learn lessons from year 2, in order to improve my grade near the end of year 1. I remember that fairly well. She taught us about trigonometry and alternating currents, which I was lectured in May 2018 or so. When the new teacher came in year 2, he was shocked (no pun intended) that we knew about AC stuff already, at least I did.

And so we enter 2018...

Reaching for the skies

The "workshop" classroom 1The "workshop" classroom 1
That year, I participated in an IT competition, and I won 2nd place. I was still in year 1, so I was among the youngest participants. 1st place was won by a guy from my school, but in year 4. Afterwards, they decided to limit entrants only to students from year 1 and 2. So I could've participated in that next year too, right?

Well yeah, but I didn't. I had something entirely different to chase. As year 1 ended and year 2 began, I got Programming class, participated in a programming competition, won 1st place, yadda yadda. I feel like this is getting pretty long, so I'll just mention some key moments.

At some point, in year 2, I was the guy keeping the class from collapsing in terms of grades. We were doing CorelDraw stuff on IT class, and I helped out basically everyone sitting next to me. 2 guys on the left, 3 guys on the right. I got my own stuff done on time too!

In May 2019, I participated in a gamedev competition, winning 2nd place with my teammate.
I'm the guy in blue, pointing at "idTech 4"I'm the guy in blue, pointing at "idTech 4"
Good old times.

A slight change in trajectory

Year 3 was messed up, cuz' I got Democracy and Human Rights class, which sounded useful until I discovered that it's actually just a class where you recite the teacher's opinions, and memorise the definition of war crimes and different political/administrative organs/layers/institutions. Extremely boring. It's all theory and you have to memorise it word by word. I'm not that type of masochist.

Then COVID came along and prevented (I wouldn't say ruined) our plans for a school trip in year 4, as well as the prom and the graduation event, whatever it's called. I'm honestly glad I won't have any of that. No need to spend a grand on the school trip, no need to spend another on a fancy suit, hell yeah.

In the 2nd half of year 3, we only had online classes. It was easier to cheat, the tests were easier overall. Not that I cheated much. Either way, it wasn't too bad.

That same game development competition happened, but it was online, of course. However, the platform that they used (WebEx) was HORRIBLE for demonstrating your game. If it's online this year again, which is very likely, I'm not gonna participate. Can't complain tho', I won 3rd place and used a part of the prize money to get a microphone and double my RAM. Hell yeah!

Year 4 was interesting, because we got an alternating plan. One week you go to school, physically, the other week you go online. The cycle repeats. It's a huge risk for me since I go by bus, and about 1 in 10 passengers don't wear a mask. Oh well. :/

The brick

So, in year 4, we have to write a graduation thesis. We choose a topic and write about it, whether it's documentation of a project, or a research paper.

Since I was working on a game and an engine, I decided to write about the process of game development. I completed it recently, having written 48 pages within 3 or 4 days.
User posted image
I wrote the cover page in March.
"GRADUATION WORK - Video game design and development - Mostar, April 2021"

And THEN it hit me like a brick to the forehead. ADMER, YOU ARE ABOUT TO FINISH HIGH SCHOOL!
Believe me or not, I'd never thought about it until that moment. Has it really been 4 years since I finished elementary school? This is insane!

With that, I'm about to end this chapter. It's been super fun.

Opening a new chapter

This new chapter is gonna be very exciting as I, yet again, have a major choice to make, and a LOT of obstacles potentially. When I finished elementary school in 2017, I had to choose between the local gymnasium and the engineering school. It was a simple one.

Now I got some rather interesting choices. Once I finish high school, which is in about 2 weeks, I can do one of the following:
  • go to college
  • look for a job
  • rest for a year and then go to college
  • go to the army
  • work in the village
Realistically, the last 2 ain't happening, maaaybe the 2nd one either. Nonetheless, I'll try applying for a job at a couple of software companies here, because I believe I do have what it takes to enter. Then I'll go up from there. There are a couple of gamedev positions, so we'll see.

And if that doesn't work, I'll just go to college, no big deal. Ultimately, my goal is to register a company one day and sell games, which will need quite a bit of money to get started, which is why I want to go with a job first.

A couple of years ago, I used to imagine life in Germany, far away from my parents, working for some game company. Meh. I don't need that to live the way I want. Now I wanna stay with my parents cuz' it's cheaper and I'd save up a lot more money, and I'm definitely not moving out of this country.

We'll see what happens.
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.
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
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.
Admer4564 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.
Admer4564 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.
Admer4564 years ago2020-04-02 22:43:54 UTC 2 comments
You know something's up when I put the uwu in the title. :walter:
So, this has been mentioned on TWHL Discord, but it should be mentioned here as well, just in case.

I have 37 tutorials on GameBanana. 8 of them are HL-related and worthy of being ported to TWHL.

Better view bobbing

A tutorial about view bobbing in the HL SDK, covering view.cpp and how stuff works there. Might be in 2 or even 3 parts.

Creating new entities

Penguinboy told me this one could be a start of a new chapter for the programming tutorials. It covers creating a really simple new entity class (which prints stuff to the console) and editing the FGD to add the entity definition.
Tutorials following this one, I imagine, would involve stuff such as targeting other entities, having multiple different targets for each 'condition', checking certain entity properties, finding entities by name or by some other filters, and so on.

About carving

The name says it. A mostly objective view on carving, covering various "manual carving" methods using the clipping tool.

How to fix those leaks

Methods of finding leaks and what can cause them.

Real-life photos to Half-Life textures

No explanation required.

Complete music tutorial

Making music for Half-Life mods and placing it into maps. Can be expanded to an overall audio guide for GoldSrc, covering different uses of ambient_generic and whatnot.

Manipulating light in GoldSrc

All about lighting, different lighting setups, toggling shadows etc.

How to make sprites more flexible

Well, to be exact, this one's originally about sprite orientation, but I suppose it could be expanded to different ways of utilising sprites, e.g. for grass, smoke, light glows, videos even.

Generally, I'm mostly excited about the programming tutorials, not just the couple of ones I'll be porting, but new ones I'll be contributing too.
From general HL SDK tutorials about various parts of its API (engine functions, event API, Triangle API, entity functions, utilities etc.), using certain 3rd party libraries with HL SDK, even touching the VHLT code a bit, all the way to the delicate and fancy stuff like using OpenGL functions, dynamic skies, modifying map & model data in real-time, and a lot more.

Other than said tutorials, I'd of course work on ADM. There are several things I wanna do this summer, mainly working on the vehicle system as well as the FMOD integration. There are a couple of SoHL features and entities that will also be either ported or replicated. I'm really hoping to push out a release by the end of summer. >w<

Also, by that time, I'll probably create a new thread for Advanced Development Mod. Utopia at Stake, while using ADM as a base, shouldn't really have its thread be home to both ADM and itself IMO.

But I cannot do any of that right now. I got a game project to finish.
By the 15th of March, I should be done with my idTech 4 game demo, after which I'll try to release my high school map by June, maybe a bit earlier even. And then, I'll finally get back into GoldSrc business. :)
Admer4564 years ago2020-02-23 16:03:15 UTC 10 comments
When fate and destiny aren't on my side, and when luck doesn't happen to have anything to give me at the moment, then I know for sure, time is only on my side.
And that's gonna take a while. I'm definitely hoping for a miracle to happen, you know. I don't know when it'll happen, I don't know IF it'll happen, but I'm certainly hoping that it will. The two greatest things in life I've ever had experience with, are both words that begin with F.
It's not fraud (never had that), it's not fire, it's not fu--ing (heck, I never experienced that either), it's not fish either, even though it's pretty good, especially trout, mmm, but rather, it's forgiveness and friendship.
There's hardly anything in this world I wouldn't forgive to someone else, and there's hardly anyone in this world who could make me feel as good as a true friend could, someone I feel I don't yet have. Well... at least yet.

Those two words kept appearing in my dreams in one form or another, and almost every time it's the same story. I either ask for it, or beg for it, and then everything seems to become positive, go back to normal. Then I wake up, sweating and in fear. I don't know why, because I don't remember most of the dream. I sometimes really wish to cry or at least sob silently. I can't scream because my soul is already screaming. It's been screaming for weeks...
All I know is, something, or someone, haunts me. It's not really an "it", to be exact. God knows what could've gone better if I hadn't said the right thing in the wrong time. It might be too late now, but at least I've learnt an important lesson.

Who knows, maybe it's not late yet. After all, time is on my side. Time knows what the best moment will be. Time has brought back a lot to me, that I once lost. In turn, time just took... time. My patience, my will to wait for things, that's gonna remain infinite. I'll let time take as much as needed, since both of us need it.
Heh. Time... I feel like someone out there likes testing my patience for certain things.

Always remember to forgive each other, people. Forgive, but never forget.

Speaking of time, today I became an adult. Damn. Wish it came sooner. :walter: