Newer

2023-03-31: Graphics week day #1 - characters, their cars and items
Turf, a crocodile, a polar bear, an octopus, Mrs Superconductor, Nubbs, Polish Cow, 'Epper, a sheep, Chikalong Tabing, an animal, a bird in a wheelchair, ice cream. And cars. And stuff.


2023-03-30: Today (a third time)
Made a staircase that changes appearance and physics every time you enter it.

And added possibility to control the camera instead of the player in a particular part of the game.

2023-03-29: Today (again)
"Pimp my ride/outfit/hat"

Trying to drive slow past an elementary school (they don't succeed)

Daddy films a documentary but can't focus so he starts filming irrelevant stuff all the time, which makes for a very bad documentary

2023-03-28: Today
Raycasting for peeing

And more magnet physics

2023-03-27: Driver's license course gameplay
Dogert teaches you how to drive, even if you already know how and have also been in multiple action-like near-death scenes where you drive like a maniac already.

2023-03-26: Story
Fixing the story. Removing and adding parts. Taking back parts that I've thrown away because they didn't work, and inserting them in new contexts to make them work again.

Today I'll write a beginning and an end to my story because right now I only have a big middle. And I need to fill one major gap where it goes too fast from nothing to fight the bad guy, something needs to happen/change there. Not sure about the pacing, will need to play through the game as it is and see, I think it may be too fast? I have to create a tension, a dramatic curve (I guess?). Hmm hmm hmm

Update: Didn't write a beginning or an end, but wrote the major gap thing.

2023-03-25: Getting productive with antique gameplay
Made funny explosion sound for when you drive into sculptures at an antique fair.

Started making a shootout between Hårass (skeleton bat) and a fan of the pop group he used to be part of.

Finally starting to get productive for real.

2023-03-24: At the magnet factory
Fast maglev tracks at the magnet factory (Shelf and Adele do an action heist in order to destroy the magnet factory).

My plan now is to use April to polish everything I've created during March, then release whatever I get out of that as a game/demo. Then do the same in May and June and release the full game. Hopefully I'll have more productive energy during May and June than what I have now. No matter what I must find a method to increase my productivity without doing more, otherwise the game won't be done.

What works is:
-Do one thing every day. Not more, not less.
-Use the free time in between the productive time to plan the next thing. Then I'll automatically start thinking about how I'll do the next thing, without any effort. It just happens. The project gets worked on even when I don't work on it.
-Focus on that one thing per day. Focus on story writing for 4 days, then on programming for 7 days. Switching between tasks is slower than focusing (I think this is why reading books gives you more information per time than reading tweets. You focus until you're done instead of swimming on the surface on different things without ever touching anything real).
-Don't plan, do instead. For most parts. When you're doing the same thing over and over again, take a few days to just rethink stuff and find a new direction. Then do things again.
-(and maybe try to be a little bit better than yesterday every day?)

I also have to figure out what things I put the most time on and either find a way to do it faster, automate it or remove it completely.

Then if the productivity mindset takes over and makes everything boring, just do what feels fun... It always works.

When stuck, take a walk, a shower or just do something else. Sleep and do it tomorrow, always works.

Keep control over your time, your mind and your ideas and don't let dayjob and other boring stuff control them.

Could this be a plan?
Week 1: graphics & sound creation through AI
Week 2: gameplay polishing - remove and add stuff until it's fun
Week 3: story rewriting - remove and add stuff until it's fun
Week 4: world design (I have no idea what to do here. Will be a challenge! Will have to look through my notes to understand my own ideas about this before I dive into actually doing it. Maybe?)

And if the energy is there: put 3 hours per day on actually doing stuff (actually changing the game file).

2023-03-23: Date
Made a date. You get to choose what to say. Say the wrong things and your date will see through your shark president disguise. Questions?

Update: Also tried to make a platforming (think Super Mario) area, but for cars. Don't know if it's been made before or how I would design it, but I tried (and failed. I may try again tomorrow).

2023-03-22:
Made a fragment of a song. Long time ago I made music. Needed to take a small step to feel like a music producer again.

Being a music producer, game director, graphics artist, writer and programmer at the same time may not work forever. Or? Maybe if I hire a couple of AI:s. My idea right now is that mundane repetitive work shouldn't be done by humans, it's better to improve your tools or "hire" AI. But for creativity, quality checks, other people's perspective and discussions I could use eternally many living humans. These aren't traditional game dev professions but it's what I need help with right now (apart from music, graphics, writing and programming which I do myself (with AI's help)).

AND I wrote 400 words of date dialogue (20% of Stephen King's recommended 2000. I think his rule applies to other dialogue than dates too).
(sound)

2023-03-21: Interactive dialogues
Created a system for replying to dialogue. I felt that the player had to little to do and say, like his actions - and life - didn't matter. Trying to fix that a bit now.

2023-03-20: Helicopter
Polished helicopter physics.

Implemented bomb dropping mechanic.

Added fog to the atmosphere to hide the visible seams of my game world for when you're up in the sky with the helicopter. Everything looks great from the ground, but up in the sky you see how small the visible world is, and I had to hide that without redesigning the whole system.

2023-03-19: Hårass
Added more dialogue. Introducing: Hårass.

Tried to create a race but failed. Two days in a row of gameplay fail isn't good so I implemented helicopter gravitation for a president assasination with steroid-based nuclear bombs.

2023-03-18: invented minor systems
Like going to a cutscene when colliding with a specific object. A small addition that will give big results because the system will be used maany times in the game.

I also realized Javascript has no clear & simple way to check for the start of a key press. There should be 3 functions: start of key press / key held down / key released, but there aren't. So I'll just never use start of key press in the game.

2023-03-17: Guys' talk in Dark Gandalf's hot spring
Added more dialogue for the chillout session at Dark Gandalf's. They bath in a hot spring and talk sports and women.

2023-03-16: Chilling at Dark Gandalf's place
Added dialogue for a chill hangout session at Dark Gandalf. Polish Cow is also there of course and they're gabbering about communism's pros and cons.

2023-03-15: Interaction with characters on the magnet festival
Created a system for talking to characters. You click left mouse button when you're close to them. Nuff said.

Added some dialogues to test the interaction system: a couple of scientist showing of their new ideas at a magnet festival (actually it's just a science festival with no particular theme, but like, magnets are what people like. They're what people want to spend their time thinking about. When you let conversations flow at parties, they gravitate towards magnet-related subjects).

2023-03-14: More dialogue
I wrote some dialogue (well, actually monologue for the most) for a magnet-themed festival and the people having exhibitions there.

2023-03-13: Dialogue & introducing the adult child O'Malley
I scrapped the character O'Ballin (crypto-freak pimp bird that owns a slave prison) and instead came up with O'Malley (24 yo Irish guy with the body of a child who thinks a lot and has low self-esteem). I created some funny (?) dialogue for the first meeting with O'Malley and his bad friend 'Epper (shark in a suit) down in the underwater sewer.

2023-03-12: Ice physics
Created physics for driving on ice. It isn't perfect, but it is like this:

* less friction = slowing down takes longer time.
* the faster you drive, the harder it is to turn which means the more you drift. For this I had to separate the camera direction from the driving direction, because when you drift the car turns around but the driving direction stays the same, and you kind of drive with your car sideways. This was tricky to figure out actually but not a too complicated piece of code. Simplified I now have one direction for the car, and one direction for the car's actual driving. The camera follows the car's direction, but the car drives in the driving direction. Earlier these were always the same. But ice fucked up the logic.

Update: Also went through old programming notes and found ideas that inspired me to improve the mobile detection code (now it actually detects when you're on mobile and gives you touch controls on the screen), lower the resolution for mobile screens for better performance, and I also realized my item system is too slow for mobile phones. Don't know how to fix it. Maybe by removing it again? Removing is so much better than fixing in many (all) cases. Maybe I shouldn't have 1000 items lying around in the world that you pick up and shoot, maybe I should just give the player a gun and let him shoot how much he wants. That would remove the mobile performance problem.

2023-03-11: Car chase
-Rearview mirror
-Angry gnomes chasing you
-Collecting items to shoot and shooting them backwards against the angry gnomes (you have to look in the rearview mirror to see where you shoot)
-Angry gnomes taking "damage" from being shot

Also went through my code controlling item interaction (collision with an item on the ground lets you collect it into your "bag", collision with an item that's being shot away by someone else makes you take "damage", and the act of shooting away the items at others - both the player (controlled by mouse click) and the other characters (controlled by AI code) - do this), and tried to simplify, remove and structure stuff like I've done with all other code in the game.
(video)

2023-03-10: Wrote dialogue for the fake card game
And for a car chase.

Update: Got tired of the card game and abandoned it. Created a rearview mirror for the car instead.

2023-03-09: Creating a fake card game
You and your new "friend" Daddy (movie director, writer and photographer) fall down into an underwater sewer and meet three annoying gnomes who want to challenge you in their made-up card game. In some way they always get points no matter what they do. So you try to cheat. While you're at it you also start annoying the gnomes and become an asswhole just because the atmosphere feels right for it. You have to make the gnomes mad at your cheating and behavior before they win over you at the card game, because then they'll flip out at you and start a mighty car chase through the underwater sewer in order to destroy you. You can also choose to just lose the card game and not trigger the car chase, that's easier (but less fun).

So, I've started to implement the fake card game gameplay now.

2023-03-08: Gameplay (death reps & shitpiss lifts at Adele's gym)
I implemented a gameplay part where you do gym exercises while two characters are having a dialogue in the background.
(code)

2023-03-07: Camera system & rethinking the whole game system
I made a function called camera_set() where all camera position & rotation manipulation is done. No camera stuff is allowed anywhere else in the code. Now if something is wrong with the camera I only have to look in this function and nowhere else. Result: camera works better and doesn't fall down to the ground while in cutscene!

Now: Rethinking the whole game system. Outside of the cutscenes, there are two modes: Free roam and Race. They share the same physics and controls, both modes are basically: You drive a car in a 3D world, and there are other characters also driving their cars in this world. You control your car with your keyboard, the characters control their cars with AI code.

To make it simple, I don't want to view these two modes as two separate modes. I want to view it as Race being Free roam with a few additions. Then I can focus on programming the Free roam mode to perfection, and just add small things to make the Race mode work too.

Now I gotta make it MORE simple. Simple, simple, simple, otherwise I'll never get a stable and bug-free game.

Another thing: I'll soon start adding various gameplay parts to the game. I don't, and won't, have a specific mode for this. These specific gameplay parts can happen during cutscenes, during free roam, or maybe even during race, but I'm not sure how I will handle this in a simple way. I have one value called "cut" that controls the game progress, at cut=100 this happens, at cut=231 that happens, and so on, and maybe I'll let this control the gameplay. Like, during cut=517 specific rules turn on, and keyboard controls start controlling new specific things, etc. If gameplay happens during free roam the simplest will probably be to use the mouse though, because I don't wanna mess with turning off the car driving controls to use them for something else. That will create many special cases that don't wanna handle the bugs for. In cutscenes you use the mouse and not the keyboard, so gameplay during cutscenes could benefit from using the keyboard.

2023-03-06: Room system
Designing a room system. The rooms are for indoors "cutscenes" (more precisely: dialogue that you skip through) and are separated from the 3D terrain world you usually drive around in (yes, it's a story-based racing game). So now I'm trying to describe the room system in the most simple way imaginable, so I can rewrite the code for it to be 100% robust. Trying to reach the essense of what the system should do. Not really there yet.

Update: Created room system. It works, except that the camera falls down slowly towards the ground for some reason... Will have to sit down and make the simplest possible description of a camera system and redesign that too. I need stability!

The camera has three modes: splash screen (shown at game start & in the pause menu), free roam/race (for when you drive around in the 3D terrain) & cutscene (for when you're in the "rooms"). I should be able to make one single function that handles the camera position and rotation for these three modes, and then never touch the cameras outside of this function. That should give me full power over the cameras.

2023-03-05: Fixed the second chunk loading problem - I think?
Seems like I fixed the during-game chunk loading (more specifically, chunk showing/hiding) by writing new super simple code, instead of the old code with clever speed hacks and special cases. I solved it suspiciously fast. Will have to see throughout the day if it will continue being fixed or if it will break again.

The very simple solution was:

Every time the player moves into a new chunk, hide the 5x5 chunks around the current chunk, then show the 3x3 chunks around the current chunk. Hardcoding like this should result in ONLY the closest 3x3 chunks always showing and nothing else. And it seems to work. The thing is that I temporarily disabled some other code, the code that actually CREATES these chunks which should be a requirement for them to be shown at all, so it's weird that all chunks still get shown with this code disabled. I don't get it and it makes me suspicious and nervous.

Update: Turns out the disabled code actually gave the predicted result. Now I enabled the code again, and things still seem to work well. Now I wonder if I should rewrite the working code to a simpler method, or just let it work as well as it does. Hmm... Good code or good results? Hopefully both.

Update 2: I rewrote the chunk creation code to be more simple. Still works well even if it loads 25 chunks instead of 18. No significant performance drop that justifies using a more complex method at least.
I also replaced scene.add()/scene.remove() with .visible = true/false in the chunk showing/hiding function. It's much faster and the code isn't very much more complex, I only had to add a test for if the chunk exists or not before setting the .visible value. Much thanks to a Reddit user who's advice I dismissed because I refused advice from people who haven't made a better terrain engine than me. Seems like I was wrong about that!

2023-03-04: Programming
Trying to fix subtle annoying errors in my terrain engine. I haven't fixed it yet but I've tried a lot. Realized I must put stability over performance. No need for excellent performance if the system doesn't work consistently anyway.

The problem is that chunks in my terrain system don't get loaded and shown as they should. 75% of the chunks that should be created and shown works, but the rest doesn't. Inconsistent... My idea for a solution is to make the system more simple and logic and remove all clever speed hacks and special cases. There are 2 things I have to fix: Create and show the correct chunks before the game starts. And create and show the correct chunks during the game, this needs to be done fast enough as the player moves across the world and wants to see the new chunks he arrives at.

Now, I seem to have fixed the 1st thing. 5x5 chunks around the start chunk get created, and 3x3 chunks around the start chunk get shown. This was inconsistent before but seems to be consistent after my fix! When the 2nd thing gets fixed I can relax about my engine working consistently, and start to add the actual game contents, the fun creative stuff!!

Older Youtube clips, etc