Sunday, 30 December 2018

End of year report


Hey, how's it going? I hope you had a nice Christmas time!
I've been pretty hard at work the last two weeks, figured I'd leave off posting last Sunday to give myself and others a bit of a break.


What's new / changed:
- Replaced the jerry-rigged "invisible bullet" raycasting technique with something proper.
Now using a "Bresenham Algorithm" solution I'm still not smart enough to fully get, but it works, it's instant and checks every square between two points in a straight line for impassable objects, besides those I've designated as "half-height" so you can still shoot over tables, boxes etc, even if you can't walk over them.
This is set up now for player and enemies, and I also extended it to:
- Enemy discovery of player
I've added patrolling for enemies, and using the same line of sight rules (and half that radius regardless of direction they're facing for "hearing").
I'd like to eventually expand this to have every enemy in some areas patrol and also activate those within earshot if the player is discovered, for some stealth or just plain unscripted encounters.
- Added new tilesets
- Added new weapons and sounds
- Added new race of fighting robots
- Condensed player sprites into broader sprite families
- Lots of mapping and filling out the station areas, replacing previous soulless temporary standins
- Fixed projectiles start location so they come from the gun barrel regardless of direction faced
- Added player sprite aiming when choosing a target
- Fixed attack animation system; previously altered step animation speed and made it cycle an alternate walk cycle once before returning to the regular one, which made things look weird 50% of the time and just seemed like it'd be a liability. Now got a system where individual frames are specified at individually-set intervals I can tweak, so gunshots and things look much better.
- Further developed story, nearly at a final draft for this level, the first 30% is playable, start to finish.

There are a bunch of other small things I fixed, art tweaks and boring stat edits that weren't quite worth noting down, I wasn't really on top of my note-taking since last blog, as a lot of the work was just story writing, conversation scripting and mapping, with pauses to create new assets for rooms.

This next week is all gonna be story scripting and titties, may be able to start on busts, too.
No news on the job front, had a couple of interviews  a week ago, but haven't heard back because Christmas. Nothing like a bit of existential dread during the holidays haha¬

That's it from me, I hope you have a great New Year's Eve, and I'll becoming back at ya with something new... or old.

Alright, cool. See ya.
x

Monday, 17 December 2018

Progress update

Man, this whole month is just flying in, isn't it?

This week:
>Added panning and volume tweaks depending on sound source proximity to player.
This was fun, and pretty slimline, wasn't as hard as I thought it might be and doesn't seem to impact performance at all. If it does on my weaker device, I'll make a toggle switch for it.
I made footsteps and combat sounds pan and change volume depending on their position to the player.
Enemies far away to the right will bias toward the right speaker, and their footsteps will be quiet, getting gradually louder as they approach the player. Doesn't change a whole lot, but it was a really fun way to spend an hour and it makes the rooms feel like a real space occupied by real things.

I'd like to do occasional breakdowns of js work, because I like talking about this stuff (since i'm self-taught it feels like magic and I won't get jaded until I'm competent) and it helps show that I actually do a lot of work, which isn't immediately obvious when I've no titties to show.
Also, just as an aside, if anybody reading this is working on their own RMMV game, I dunno, maybe it'll convince you to start with js to get more out of the engine.
I'm a bit of a dummy and I just started learning a few months ago by myself so if I can learn it, you absolutely can, anon.




Panning:
Takes the object and makes sure it's an object with a defined x coord, asks if the map is 15 squares wide or less (small enough to fit on one screen without scrolling), if so it'll pan the sound relative to the object position on screen.
Otherwise, it'll pan based on position relative to the player.
The first method is preferable, because I also pan player footsteps, so he instinctively feels like a real thing in that room (you can follow his walking around with your ears) but would potentially sound weird in really wide rooms where he's in the center of the screen, but technically on the far left of the map itself, so the sound would be panned left.
Both calculate so that it'll output a figure between -50 and +50, which is the RMMV panning offset range. (The second can go higher, but anything outside these values is accepted as valid, too, only affecting volume at the extremes.)

Volume:
I've explained it already in the notes I left myself, but this specifies an initial (Max) volume and the object making the sound.
As long as that object is one with a defined x coord, output the max volume value minus a percentage based on the objects proximity to the player.
Essentially, every square an NPC is away from the player drops the volume of sounds it emits by 10%.

Initial check at the beginning of each says if the object in question is the player, just return the max volume, because there's no benefit to calculating how far away from the player the player is, unless he's doing some college-level soul searching.

Okay, so I've spent almost as long writing up on this as I did writing it in the first place, what else have I done?

>Added way for inventory items to be passed between NPCs or from NPC to player through dialogue or cutscene.
If you convince somebody via dialogue to give you a key and they later die, you shouldn't find another copy of the key on their body.

>Added Terminal system
Built a small framework for computers to be built in the same way as other objects, with logs, any doors etc governed by the computer, ability to load complete disk sets or eject disks to inventory. Idea there is to optionally collect disks to make up a complete program, which can then be loaded at any computer. Playing games within a game wtf I hate the matrix now?
Also added terminal sound effects from the old game because they're comfy and sometimes ideas you had a year ago are pretty okay.





>Added simple 'chat' ticker for future idea.
Came up with a really quick, simple way to handle the illusion of a ticker feed, which should come in handy for a planned hidden game I've had in mind for a while.
I want to capture the magic of getting whispered by that plain, quiet guildie girl from across the country who you gathered herbs with and talked about growing pains all night instead of studying for those unimportant finals.
>Fixed object discovery in battle.

Discovery was tied to a host of other player-turn-initialization actions that were impractical to re-run if the player was changing direction rapidly. Now separated it, so discovery works independently.
>New tiles and room.
Expanded the tileset for the current level to replace some placeholders and added a new room as part of a minor puzzle.


The coming week:
>Continuing story scripting
At the end of a neat branching dialogue right now with a few gameplay outcomes changing as a result, so just testing it wraps up like it's meant to before moving on.
>More art
I've got some podcasts and audiobooks to catch up on, so I'd like to spend a while on tilesets and sex anims.
>Interviews
Landed two in-person appointments this week, one of the two I would really like to work at; not an obviously exciting place or field, but it'd pay me well enough to live, give me a little development budget and ample, daily opportunities to get gud at js on the job.
I dunno, wish me luck I guess!
I'm on my last month's savings and I don't know what I'm gonna do ahaha

Alright, I oughta wrap this up,
Have a good one, anon.
oko

Sunday, 9 December 2018

Music and weapons and stuff

Hi,
Here's the gif from before, since a week has passed:



This week I got the weapon quality modifiers in so there's a small chance gear dropped or found will range from -2 to +2 in quality, affecting various stats.
You might find a rapid fire gun that has a chance to return move points on enemy death with that weapon, or a heavy axe that's less accurate, but does more damage when it does hit. Stuff like that. Since weapons drop all the time and all of them are pretty valid, I thought it'd be fun to have rare drops that'd be worth holding onto, but without getting into standard bullshit rpg stat autism; that is, while you can check the stats, it should be immediately obvious if a new weapon is worth switching to, so you shouldn't have to compare, it's not exactly a high-brow game.

I corrected a targeting error, where under edge cases the wrong targeting data was being accessed. Ranged data was being used for all [3] attacks, even without a ranged weapon, which ended up being a problem after I updated target behavior last week.
Did some further combat targeting fixes, still more to do because it's not 100% perfect; sometimes when given the choice between two targets in the same direction, the further away target is chosen instead of the logical closest one. Likely to do with targets being culled from the potential target array without the index being updated. Not a massive deal, but I'll get to the bottom of it next time it really annoys me.

Wrote some new functions for scripted adding of enemies to an ongoing fight, created a more tight enemy spawning system that relied on callbacks rather than delays, then realized I need the delay for enemy units to define their own stats and if I'm going to keep using RMMV for on-map battles I can't get around this method, so rolled back.

Finally, scripted a fight scene with a few different entry scenarios, wrote some new music, which I've put on Patreon tonight.



The coming week:
- More scripting, have to really get moving on the story before I can feel like I'm making progress. Looking at the same room for the last week makes it feel like a standstill, even though it's not.
- More interviews and trying not to ugly cry because I let a company make me feel like a big deal only drop me late in the process :DDDD

Cheers,
oko

Saturday, 1 December 2018

Is it Christmas yet?


Ho ho ho, are you almost there, anon?

December 1st and I'm in the spirits already with my sleigh-bell jams and hot cordial.
I don't want anything this year, I'm really fortunate to already have everything I could want.
I mean, except maybe a job, but I have a really good feeling about one of the positions I tried out for this week, so fingers crossed!

I'm sorry I didn't post last weekend, I just didn't have anything good to show you, but I promised I'd have something nice to show patrons this week to make up for it.

Here's a little still-frame preview, the very juicy, moving version is here on Patreon:
>that feel when no chubby four-titty, milky-squirting Orkie gf

Still working on finishing the liquid animations on this one this weekend and have another waiting patiently for the same treatment afterward. I don't wanna show off too much, though, because I want the new material to be fresh when you get to it.
I think the answer there is to have more scenes, so even if I spoil one or two, there's still lots to see, but also I don't wanna pack levels with too many at the cost of them taking 3 months to reach you.

This week:
- Added stripped-down version of the Hentai engine for use on-map, to have animated scenes play out with audio synched to frames while the player is free to wander. The first example of this will be early in the new level, and it's pretty neat.
- Created the aforementioned scene, which branches depending if the player investigates.
- Created two full H-scenes, reverting somewhat to the older, less-blurry way I did scenes for the last game. I think from feedback people preferred this to the more dreamy, shiny soft focus "3D" looking scenes in the Starknave demo. I can see their point, too, adding in the blurry overlays detracts from the limited color look.
I'll have the occasional soft-focus scene here and there, but I think the bulk should go back to looking more like the above scene.

The coming week:
- I have more scenes to do, really on a roll with animation, in the swing and spirit of it, so I'm gonna keep on with that while it feels great. My wrist needs a rest, though. Even with one of those vertical meme mice, I'm still getting strained from clicking intensely for hours every day.
>"Doc, my wrist is killing me"
>"What have you been doing?"
>"Meticulously drawing ejaculate spray, frame-by-frame"
 - Scripting! Keeping the flow going on this new level, got a couple of fights and lewd setups to get done to integrate the scenes already done.

- Adding item quality, so very rarely modified +1 weapons with stat bossts will drop, ditto enemies may have lousy weapons.
I think now with the ability to take any enemy's weapon after knocking them down, the best way to make this feel rewarding and not get stale is to have a little chance of getting something imba that's fun to lay the smack down with, something worth holding onto.

That's it for now, how are you doing, what would you like for Christmas?
Oko

Sunday, 18 November 2018

Update


Hi,
So this week I've been working on the new level, creating the new maps and some music and animations to go with them.
Also changed and fleshed out the flow a bit to include a new section and some titty scenes.
Nothing really exciting to share without spoilers, but I'm happy with how it's going, I just need a good block of time to really tear into scripting it out.

Ayy I bet doesn't even run Crysis lmao

Changes:
>Movement routes for enemies are recalculated at the start of their turn even if their target coords haven't changed.
I was having problems where enemies weren't taking into account new obstacles (eg other enemies who've moved) preventing them from moving their plotted route toward their target (eg player). Previously they'd only reset their course if their target coords changed. If the player stood still and never attacked, they could get into a stalemate, which is now fixed.
>Changed battle ordering by initiative to include player proximity as a tiebreaker
So if multiple enemies have the same initiative score, their turn order is now determined by how close they are to the player as a tiebreaker. Before, groups with the same initiative would be ordered by their eventId by virtue of how the data is checked. The new method greatly reduces scenarios where enemies at the back are boxed in and effectively skip their turn until the battle opens up a bit.
>Changed the way potential targets are gathered and stored
Previously I'd get a list of all enemies within the player's attack range and order by proximity to the player. Similar to the above ordering, this would mean enemies with a lower event ID would be targeted first if you had multiple enemies to choose from. You may have experienced this is in the demo, where you wanna target a guy next to you but you have to cycle through a bunch of other targets to get to him, then repeat again to attack the same guy in the same turn. It's been annoying me for a while.
Now rather than the closest unit being shifted to the front of the available target queue, you target their indexed place in a queue that's ordered from left to right as the map goes.
TL;DR you now target the enemy you're looking at, moving left cycles left and moving right cycles right woah literally why didn't I implement this from the beginning
>Melee attacks while holding a gun now properly show melee damage vfx
Simply, the last update made hand to hand punches while holding a gun actually animate as punches, now punch vfx have caught up too, so no more sparks and puffs of smoke just cause you punched a guy while carrying a laser gun.
>Footsteps & move waiting
Changed the way enemy turns work, halting all further turns from executing until the enemy has stopped moving. This was implemented only for movements and the change might not be felt, but there's no downside to doing this as a blanket rule, and removes rare edge cases like enemy turns moving on before the sprite representing that enemy is on the same page.
>New units with sound and AIs
Added in some little cannon fodder gobbos and a big surprise enemy.

That's it for now, I'll check in again soon.
Thanks,
oko



Sunday, 11 November 2018

>enemies can open doors

Hey, time for progress posting.

This has been a pretty fun week, though I've had less time than previous weeks due to job searching, I've made some fun additions to help in the coming levels.
The biggest win has been an addition I've wanted to add for months but was always too scared to; button [5], giving the ability to interact with objects (containers, internal doors) and npcs during battle, so now you can punch a guy, take his axe, chop down his gunner friend, take the gun and shoot at any other enemies, and it all just works.
I am a little worried about the UI getting crowded, so hopefully there's no need for more contextual buttons.

Work done this week:

- Mapping levels
- Enemy design and Combat balancing
- Some sprite art, more to do
- Residual battle data now cleaned instantly, making used slots reusable immediately, no need to leave the map to clear cache.
- Cleaner ways to generate dead NPCs, doors and containers
- Internal doors, which both player and enemy can operate during battle
- Battle object manipulation; player can loot a dead enemy's weapon, search containers and open doors during battle
- Ability to turn to face whichever direction you want during your turn. Not sure why I didn't add this sooner, it's vital.

Other than that, I updated some functions, created some new ones to help streamline things and make objects behave the same for players and enemies, stuff like that.

The coming week:
Moar art! I've got a big list of sprites to create for the level tileset and characters who'll appear in it, I might have more features to add now that I've whet my whistle on the battle item changes, other than that it's gonna be sprite art, girl design and scene design, with some scripting for the 5 maps made so far.

Thanks,
Oko

Monday, 5 November 2018

Starknave v1.0.3


Performance fixes and changes, not a content build, just a final tutorial/demo version that should run for everybody now.

Features:
- Performance fixes; runs better than ever, should be no more lag on lower end hardware.
- Netbook mode: Turn off all extraneous effects, gets my netbook from 45fps to 60, constant.
- Difficulty settings; Normal, Easy, Very Easy
- Battle tweaks;
         Heavy attacks give more worthwhile damage increase over Light,
         Health regen increased
         Unspent moves at the end of turn converted to health regen
- Level select screen with level unlock and save features.
- Game Over screen just for fun.
- New, better Hentai UI (with option to switch back if you prefer the old one)
- Weapon stats are clearer now; instead of Damage shown as "2[~1]" (2, give or take 1), now shows "1-3".
- Choice-safe Fast Forward dialogue; hold [Q] to skip text without risking making choices
- Fixes and changes to make system modular for more levels, last of the demo jury rigging removed.

Windows
https://mega.nz/#!H6BChSrK!oxf-aNXQh9rRsSv_KZaB51JO6C9B-UcDFecXnf95k1o

Mac
https://mega.nz/#!WuJyQQZA!z8xw6_UJsTcng5rD1EFp4ucyX2YWPYo1-dXl8xxIM70


Linux:
Starting next build, sorry meanwhile!

60FPS ON MY NETBOOK WITH THIS ONE WEIRD TRICK

Hey,

So this week I got a couple of more reports of bad performance and issues, so I dedicated some time to that and decisively located and fixed the issue.
The game now flies on my Atom x7 netbook, a pretty solid 60FPS, playing through the whole thing multiple times in a single sitting without issue.
Fucken fixed, boys. I'm really glad.

On the one hand I didn't want to give too much time to this, because trying to fix performance on RPGMaker MV felt like waging a land war in Asia.
On the other hand, literally what is the point in making a game on a tricked-out Google Chrome meme engine if it won't even let me run hard porn on a smart fridge?

You ever think of a joke and you know it's not that good but you've started making it and well I guess I'm posting it

So the good news is that it was because of a couple of 3rd party plugins; one for highlighting text during choices, which I've now replaced with a simpler alternative, and one for ensuring assets are loaded before update functions are resumed. Googling the latter, it turns out people have never-ending trouble with it producing similar results wherever its used, but I won't link to it because I was using an out of date version of the plugin and the creator seems like a super sweet guy who's doing everything he can to push fixes to people, and guys like that make the internet go round.

I'm not sure I fully understand why those two were tanking performance, I'm just glad it wasn't my own js work that fucked everything. That feels nice.

So between this and some other issues being brought to my attention that I'd since fixed, I figured it best to get a 1.0.3 build out with the fixes.
It's a better experience overall and should solve any remaining problems.

For those who've played before, this isn't a content build, sadly, it's just about getting a better, newer build out there working for me while I make new stuff.

Story progress for the next level is going pretty well, not as fast as I'd like but I've been busy. It's getting there.
Not much more progress on the OST this week, it's on the back burner until later.

That's it from me, I spent the whole weekend getting the systems ironed out for release, so I'm gonna post 1.0.3, then have a nice bath and get some sleep.

Thanks,
Oko



Sunday, 28 October 2018

Additions, fixes, story + OST

Hey,

This week I've been creating some new mechanics and some fixes, including:
New:
>Normal, Easy and Very Easy (Journalist) difficulty settings
Easy raises regen, health, attack, defense and accuracy a little, if you want to feel powerful.
Very Easy is for anybody who just wants the story content, this makes battles a cakewalk.

>Ability to set waypoints for enemies and allies to travel toward with adjustable tolerance radius.
Added a simple override to tell enemies or allies to make their way to within [x] squares of [someplace] without altering their AI or target.
Eventually I want to let players set waypoints for controllable allies, but right now i'll use it for story battles or neat scripted maneuvers.

>Health regenerates at the end of turn based on how many Move points you have left
So now there's actual value in skipping your turn if you're low on health at a safe distance

>New subtle UI for Hentai scenes, with option to switch back to old.
The old version was too much like a subtitled movie, I felt I had to choose between watching the scene OR reading the stats.
The new version has two translucent bars fill up on the left and right edges of the screen, so you can see the progress passively in your peripheral vision, without needing to look away to read digits.


Fixes:
>Fixed RNG function I wrote in my first week of JS and didn't realize was broken, which under certain circumstances would return stupid fucking bullshit results.
"Hey, computer, gimmie a number between 3 and 12."
"Uhhh... 14?"
"Cool, thank you."

>Fixed ability to skip dialogue using fast forward- no longer need to wait for full sentence to play out
This should have been fixed before the public demo went out, but it's there now, so you can skip freely.

>Added optimizations which may help fps on low-end systems.
I wish I knew exactly what caused this. Sometimes just starting the game a second time fixes issues for my netbook.
The game is built on v1.3 with some patches to bring it closer to 1.5 functionality, but I can't upgrade my project files beyond that because of some vital plugins I'm not smart enough to write new versions of.

>Made battle cleanup function safer, to avoid case-by-case bandaids previously in place for scripted battles
Sometimes I'd delete an event in the editor, leaving a gap in the numbering, which would be taken by the next event made on-the-fly. If that event happened to be, say, a temporary battle cursor and got hard-nuked after a battle, it might move everything down one, breaking all events. This happened to me twice during the demo building, so I created a new NPC to fill the hole, but I shouldn't have to do that now in future.

Story & Art:
This week I've been writing and planning the new scenario; the skeleton is basically there, it just needs more content and detail before I get fully underway.
I've been creating new script functions I'll need (eg. waypoints, mentioned above), doing girl design and the early stages of creating the new scenes.

Music:
Since the music files with the game are low-quality loops to keep file size down, I'm slowly putting together a high quality OST release of tracks released so far, which I'll work on if I get blocked or need a breather from story planning this week. Not sure when it'll come out, because the new level has to be top priority.

That's it from me, thanks for reading!
oko


Tuesday, 23 October 2018

Progress update

Tuesday still counts as Sunday Progress, right?
Sorry it's late, I wanted to give myself and everybody else some notification breathing room after what's been a pretty full-on release weekend!

So, it's out, a week later than I'd hoped but all the stronger for that.
The reaction has been incredible, I feel so lucky.
In just two days, the thread on f95zone has had nearly 50% of the traffic my previous game got in 18 months.
That's such a great feeling.



People have been super nice about it, too, seeing people praise something you made feels really surreal. I'm just a guy, a literal who, but people like it so I'm gonna keep doing it.
That said and appreciated there have also been a couple of problems people highlighted, mainly on lower-end systems, so I'll be spending part of today fixing things now that will improve all releases in future.

It's hard to tell how much is RPGMaker's fault and how much is my own, but today I'll be tweaking / turning off certain functions I've added and seeing if I can get more performance on my lower-end device.
If so, I'll rework it to be optimal for all users, if not I'll put a pin in this and go back to working on the new content.
I'm time-boxing this for a few hours, though. I really want to get any engine issues flattened out, but these performance issues are affecting a small percentage of users and my main priority is creating new content.

Issues highlighted:
Esc functionality during conversations:
It was brought to my attention that pressing escape during conversations sometimes picks the default answer, sometimes does nothing. This is technically by design, as I just turned it off for some multiple-choice sections to avoid people making storyline-changing decisions on a whim, accidentally or through habit.
I'll bring the remaining ones up to standard. I think I want Escape to skip dialogue but not select anything by default, that way choices are sort of hard gates that require player confirmation to continue.
Ultimately, I think if we skip choices, how much of the game are we actually still playing?
Performance:
I've heard of slow performance on low-end computers so I'm spending a little time today debugging with my GPD Pocket and trying to find out how much my scripts or plugins I use are to blame for that, and if so how much I can work around it.
From the CPU profiling I've been running, it seems as though the most intensive operations are those built-in to RMMV, with my most expensive scripts accounting for much less, which is a load off, but doesn't really solve anything.
There are a couple of suspicions I have for ways I've co-opted or changed behavior of built-in functions which may be contributing to lag and might benefit from some rework.

____________________________________________

Progress toward next level:
Rough storyboard for the next level is done, I just need to do some passes on it, flesh things out.
It takes place on a space station and there are many rooms planned, but I need to make sure each of them is worth going into for one reason or another.
I don't want to just have rooms there for the sake of more space if there's nothing in there to do, hear, read or apply BENIS.

Work continues, thanks so much to all the new faces on Patreon, this is all for you.

Your pal,
Oko

Sunday, 21 October 2018

Saturday, 20 October 2018

Public Release Tonight!

00:00 GMT

x

Thursday, 18 October 2018

Star Knave v1.0.1 + 1.0.2 patches



Thanks so much to everybody who's played so far. There are still a couple of days before it goes public, so thanks for not leaking it out ahead of time, I appreciate it.

I've updated the demo to 1.0.1, following some fixes, feature additions and prepping for future levels.
No significant content (scenes etc) have been added, so if you've played 1.0.0 already, this isn't strictly necessary:

Rather than post again, edits to add notes from 1.0.2, marked green.

Additions:

  • Weapon Comparison Sheet when looking at quest/found/non-looted weapons.
  • Character Sheet now in Inventory menu, shows stats including equipped weapon.
  • Control hints on [F1] with flashing hint, supplements tutorial.
  • Better Lonnie busts for the final cutscene.
  • Optional combat effects.
  • Optional UI sounds.
  • Script to kill now-useless properties from dead enemies on battle end. (Reduces save file complexity, which can be a problem after battles)

Changes:
  • Spelling and minor story fixes.
  • Projectiles more glowy and some NPC sprite touch-ups.
  • Battle music replaced, now full-length.
  • Items given to others now removed from Inventory.
  • Object accessibility tweaked (no viewing posters through walls).
  • Switched scheduling system to one that supports future levels.
  • Text boxes now force transparent for the duration of cutscenes (more space to see boobs).
  • Changed text coloring & voice system to not be reliant on npc objects, for greater freedom and to cut down on excess properties.
  • Removed compression plugin, it was causing more problems than it solved.
  • Story changes to make a little more sense.
Links:
[Download latest Build]

Sunday, 14 October 2018

I DONE IT

Hey, how's it goin'?

So I put out the first build last night, then I took Saturday night off to recover from an erratic week. I definitely overdid it, as far as my head and eyes were concerned, but even so it felt pretty great.

I couldn't quite shake the worry that the demo wouldn't be well received, because I know in some ways it's a departure from my previous work, so I still checked in for emails, mostly to make sure nobody was having horrendous crashes or anything but the reaction has been wonderful, only a few bugs (spelling errors or information that could benefit from being clarified) reported and I feel so, so blessed by the general tone of the response, I can't even you guys.
It's really difficult to regret overworking yourself when at the end of it everybody is being this sweet.

It seems a bit of a formality to post progress right after you're able to play the latest, but I'll do it anyway because it's pretty comfy looking through my backup folder, deciphering my cryptic notes I made at 5:17am on a tuesday and reconstituting the thought behind it from concentrate like a supermarket orange juice.

This week, I mainly playtested and implemented fixes, tested saving everywhere and reloading to make sure rooms all initialized properly, that all relevant values were restored, rewordings of tutorials and some dialogue flow changes. I also:

- Added a new character, who can be recruited to help fight with the right motivation
- Added death handling- until now the player would just hobble around at 0 health, and while it looked hilarious, battles have more weight to them if death is a possibility, or rather no weight if there's no chance.
- Upped player health to default of 10 and added an event halfway to heal, in case the player doesn't experiment with food items looted from enemies


There were a couple of bugs or things pointed out, some of which I've fixed already (spelling, double-spaces), some will be fixed this week, including;
>Weapons have no visible stats, player has to make blind choices between weapons.
I didn't initially think this was super important at this particular stage since any weapon will be an advantage over your fists, but it's a totally valid point and something I'll need to add regardless, if for no other reason than the stats being broadcast in my face all the time so I can tweak them better, so I'll work on that this week.
>Handing over items as part of a transaction or mini quest doesn't actually remove the item from your inventory!
Boy do I feel dumb. There are a couple of key items in the demo and some checks to make sure the player has them, but I didn't think to remove them from the inventory when it'd make sense to in the story. This'll be fixed.
>No way to reference the information from tutorials on command.
I'll make some kinda cheat sheet, I think. While I do go over what each button does, it's kinda in a dump at the start of the game, and that's no fun, so I'll come up with something the player can easily access any time.

I've paraphrased the above from reports I've had so far, thanks so much to those PMing them to me, it really helps cover those blind spots you develop when you work with something every day.

That's it from me, again, I'm so glad people are enjoying the new work, I'm looking forward to putting the free version out this week to let others try it, and to get onto the first proper mission/scenario, which I've had waiting for a month to be realised.

Thanks again,
Oko

Saturday, 13 October 2018

Star Knave v1.0.0





Download latest Build

Public release date: October 20th
$5 Patreon release: Tonight!

Sunday, 7 October 2018

"I swear it's actually coming out soon" edition


I super wanted to get this out Saturday. I spent 20 hours a day all this week working on it and again I've failed to learn that it's not that I'm not throwing enough man-hours at it, it's that I'm only one man.






This week I:
- Added some more to an existing scene, adding some buildup and wind-down
- Extended the same scene to add better climaxes and updated art a little
- Implemented Auto Hentai mode, toggleable, bound to spacebar
- De-cluttered the flow, removing one sequence that was just for fun and not lewd
- Added some weapons the player can find and equip
- Added small NPC quest

- Music fixes, much better battle music than that shown last week
- Created logo and start menu
- Reduced UI padding to show more screen when using optional text window boxes
- Added optional in-flow tutorials for the 3 main areas of the game
- Blocked saving in H-Scenes and Battle
- Added scripts for refreshing individual npcs to update their loadout
- Small AI tweaks
- Attempted to add all global variables to be saved as properties of $gameSystem
- broke many things in a 6 hour period, then re-evaluated and realised I only need to add a few global variables to be saved as properties so long as I remove the ability to load from the pause menu
- more on this below
- Redid some character art to be more distinctive
- Added big titty orc hair metal band to the main area

So. The demo is basically ready, meaning I could put it out today and most people could probably play through it without issue, but I want to hold back and spend a couple of days just testing it.
The holdup on Saturday night that prevented me from releasing was the above-mentioned problem with global variables;

The problem is that I'm declaring variables with global scope but that these are only used by my scripts and unless told don't interact with the rest of the game. They aren't saved in save files, which means if you were to save your game mid-battle one of two things would happen during load:

> If you loaded within the same session, as in from the pause menu without shutting down the client, the values would not change, remaining floating from the time you loaded, which would break things
>If you loaded from another session (closed the game and booted again) the variables would be their default values, breaking things.


My solution to this yesterday was to go through thousands of lines of script and add each global variable instead to be properties of $gameSystem, an engine object that is included in the save system, so I could piggyback on it and theoretically we could save and load from anywhere and it'd all just work.
But doing this broke some systems, and after a period of 6 hours and feeling like I'd absolutely fucked everything, I rolled back and started again only adding the variables I'd need to save, rather than adding absolutely everything. I think the main problem was plugin commands messing up due to the period in, eg. "$gameSysten.testVar", maybe the value would be separated into two strings, borking the command on entry, I can't say that for sure, but what I do know is the main problem I was having was with plugin commands, and for a couple of key parts I just can't do it any other way.

The plus side is that I now understand the whole thing far better, and as well as having added some key values to be saved, I now know how to do this for the future.
So while it wasn't a rousing success in the immediate and I beat myself up all last night for the 'wasted time', it was a net positive.

The plan:
I'm going to continue working this week, bugfixing where I find any and allowing myself until Tuesday to add small details, but nothing that takes more than an hour each. Then I hammer the build and send it out late this week.
I just want this first demo to be great, because it might be the only non-patreon build out for a little while, so I want it to be a great ambassador for what you can expect from supporting the title.

Anyway, that's enough rambling from me, gonna eat something and get away from screens for a while, my eyes hurt like a bastard.

Take good care of yourself,
Oko

Sunday, 30 September 2018

OkO what's this?

Lonnie a C U T E

New music posted to Patreon:















Hey,

Sunday progress report, being a tale of conversation scripting, animating and edging closer to release.
So this week, I have:

>Implemented a hentai scene
>Completed two more sets of portraits for lewd conversations
>Wrote new music
>Gave the UI more room to breathe in cutscenes
>Created a system to clean up events by making them inaccessible when no longer needed. Old method removed them, freeing up their eventId, which could be taken by a troop spawn with unpredictable results.
>Did another pass on conversation sequences to make them more to-the-point and more lewd


This coming week I will:

>Finish the last narrative block
>Add the last animated sexy sequence
>Record, process and map sound effects to the completed scenes
>Fix the music I wrote this week with half-hearing, because it's probably not balanced right
>Rig the start menu and end screens for the demo
>Hopefully, god willing, release


I wanted to get the SFX done by now but I've been sick this last week. You know that kinda flu where your ears block up and stuff?
Hot coffee, chicken noodle soup and eucalyptus baths are the best things on the planet. Every day is a fucken gift, I love it.

That's it from me,
Hopefully I have a game for you soon.

t. oko



Saturday, 22 September 2018

YES, THE PENIS RISES

Sorry for the exclusivity, a guy has to eat.

Hey, how're you doing', what's going on?
Checking in a day early because why not?
This week I've been 90% animating, 10% revising story elements.
I really want to show you how these look in motion, since a lot of my time has been spent animating fluids, but I don't want to rob you of the first playthrough experience by showing you all the juice in advance.

I'm pretty happy with how everything is going so far, though I'm still settling into the workflow so the first scene took longer than I'd hoped, including throwing everything out after a few hours and starting from scratch.
Back into the swing of things now, though, really enjoying myself.
Once these are done it'll be sound effects (found a pretty cool way to make new, better cum sfx, so I'm looking forward to recording that), remaining story work and a little more music before it's released.

Hope this finds you well.
Oko

Sunday, 16 September 2018

SO CLOSE THAT A LITTLE BIT IS COMING OUT


Oh, we're gettin' close.
I don't want to say it'll be ready in the next week, but it can't be much longer than that, I've been making great progress the last few days.

This week I completed the 'skeleton' version of the demo, I can run the full demo start to finish, badda bing badda boom.
Now I'm doing cycles of improvement or whatever the hell you call it, now I get to have fun creating the final assets after weeks of working with placeholders.


In space it's always the 1970s and 80s





It's really getting there and it's been a lot of fun leaving the art until near the end like this.

This week's progress:
- Finished writing and scripting all story scenes in the demo, 2/5 have final dialogue, the rest need another couple of passes and more permanent art added, which will be the main focus this week.
- Added compact and transparent themes for text display, the latter of which is now the default because it looks fucking sexy during conversations.
- Added more options, ability to turn on/off various UI and Audio elements to suit user tastes.
- Made object finding process cheaper and fire less often
- Changed the way I was handling image cache clearing between rooms

Man, that doesn't sound like a lot, at all.
It's been really busy though, mostly scripting and writing dialogue. Really happy with how it's coming along and looking forward to getting it to you.

I've also written some new music, which I'll do more of this week.
Hopefully soon I'll actually have some gifs to share so we can get hype.

Thanks for reading, I'm going back to work,

Oko

Sunday, 9 September 2018

Star Knave

Hey,

I've been knee-deep in demo building every day this last week, feels great!
It seems like every few hours I'm creating some time-saving function that'll make life easier in future.
I guess I went into this demo thinking the battle, adventure and hentai parts were ready, so that it was just gonna be scripting what happens between them, but it's actually been great for developing the tools I'll use for setting up cutscenes, moving actors around, showing dialogue and so on.

Progress!
- Added binary switch for all actors deciding whether they can be added to combat or not, previous system added all units tied to player enemy factions, but in some scenarios it'd be handy to have some enemy units not join battle right away.
- Cheaper object search, old method checked each actor with two sets of criteria, now each actor is checked once with both criteria as either/or.
- 1,2,3 and 4 keys cleared message boxes but not choice, they now action the highlighted choice, too.
- Container objects now generate their own contents as soon as they are ready, like NPCs do. Previous system waited for callbacks from all created events before processing them all in a row, but this was causing problems and it made no sense to have two standards for how to populate objects
- Created easy functions for getting and dropping weapons, previous system relied on the object appearing in a container, this allows the story script to affect player inventory and equipped items, for example losing your gun in a cutscene or an NPC giving you a sword.
- Created dialogue handling system, narrator text shows instantly, character speech is shown printed letter-by-letter, in their color and voice (as determined by stats on their object)
- Adventure icons, representing: Look, Pickup, Talk To, Pass and Go
- Whole cutscene-handling system with:
        - Bust preloading
        - Busts 'talk' (mouth opens,closes) as long as their speech is being printed onscreen
        - EZPZ bust changing system


Demo story:
- Added some demo subplot to make the nice environments more worth exploring
- Scripted two large cutscenes, barebones, no busts yet
- Scripted about 60% of the demo story.
- Added NPCs to the bar, feels much more alive.

A really busy week, I'm having a great time.
Oh, btw, my new game is called Star Knave :3

Sunday, 2 September 2018

Demo building



It's nearly time to show everybody a glimpse of just what the hell I've been up to these past months.
As you can see from the picture above, things still look pretty barebones right now, so I can't say for sure when all this will be ready.
I don't want to shoot myself in the foot with an overly optimistic date, but I'm working hard to make it as early as possible without releasing v0.0.1 bullshit.

This week I mainly occupied myself with writing a short demo scenario where you'll get hands on with all the main mechanics, so you can see if you like it and I can figure out what I can do to improve them for the main game.

Progress:
- Finished up remaining work on hentai engine, including better speed change turnaround and C-meter grinding sweet spot
- Created tilesets for the upcoming demo (really feels great to work on some new art after months of the same rooms)
- Created some rooms for the demo
- Tuned how doors, fixtures and NPCs differ behind the scenes
- Tackled a huge lag spike on battle start, still not perfect but seems to be a once-per-session framerate dip, with subsequent battles not slowing things down. Will get to later.
- Wrote out the full story for the demo scenario, estimating about 15 to 20 minutes long, just enough to give an impression of how the game will look, run and feel.
- Any window that can be opened with number keys can be closed with them too, feels more intuitive and comfortable. Trying to maximise comfort of 1-handed play this time.

Improvements:
I wrote some small functions to solve persistent Lateshifter issues:
Default RPGMaker system for movement is really only good for pokemon style cutscenes, where all action and player input stops, a character walks onscreen, says something, then walks back out of the scene or remains stationary.
The main problem I had in Lateshifter which accounted for 95% of all bugs is that I wanted NPCs to move around independently while the player is also able to move.
This meant the player could get trapped by npcs or the player could be move-routed into a wall because all movement is relative and requires the moons aligning to not go wrong.

So I've hopefully solved all those problems with my new system. Now I use the builtin pathfinding that seemingly only gets used natively to make the player path toward location of mouse/touch input and for "move toward / away from" movement route rules.

Old system:
>Punch in relative-to-current-position movement directions that should get the npc to the desired location
>Move up, move up, move up, move left, move left etc.

>Oops, you're lodged in the fucking wall / a move got dropped because you walked in front, ruining the rest of the movement, the NPC didn't end up where they ought to and now the whole flow is broken, hope you saved! (SIKE, saving fucks up the move routes too! :DDD)

New system:
>Punch in "walk($gamePlayer,4,4,true);"
>If the player is not at position 4,4, path there, walking around any obstacles (including ones changing while en route) and resume the story flow once he gets there.

I'll expand this later to be smarter, checking if 4,4 is occupied and if so an argument for whether it's acceptable to pick a square nearby to path to instead, or to make this npc able to just walk through the blockage, but it SHOULD be a tight enough ship to not need these yet.


That's about it from me, I wrote a few minutes of new music for the demo this week and did some romancable girl design, physical and personal.
For the rest of today I'll be scripting the broad strokes of the demo with placeholder sprites, then when that's all done I can fill out the placeholders with final text, art and music.



Thanks for reading, I hope you're doing well.
Oko

Sunday, 26 August 2018

I FINISHED ON HER PREMATURELY AND THAT'S A GOOD THING, HERE'S WHY

wtf I love videogame journalism now.

Good to see you, anon. It's Sunday Progress Report time.
This week I finished up the first round of Battle AND Adventure modules and planned out a few days to replicating the Hentai scene engine from the old title in pure, sexy Javascript.
I've actually got it 90% finished in half the time I'd allocated, I guess the brainwork was already done and I was just figuring out a smart way to set it up this time.

Before: Each scene was scripted in its own event page with hardcoded values based on manually-filled counters (number of frames x time between frames), I'd give it a counter of eg. 459 frames, then tell it to count down.
Meanwhile my audio component would listen out for set frame numbers appearing and play a sound I'd told it to, based on horrific If/Else trees with every file again written in manually.
Result: 4 or 5 concurrently running scripts processing inputs, scene changes, calculations, dialogue, sounds.
Scripting boner: Floppy and a bit scared.

Now: I write out the bare minimum values in script, these are added together and use maths to work out which pictures I want to show and which frames I wanna play which family of sound, with sounds automatically processed to sound differently based on speed etc.
Result: About 200 lines of Javascript, to which I feed a single line and maths takes care of the rest. Thanks, Maths.
Scripting boner: Absolute and unquenchable.


Changes since last Sunday:
- Items can be scheduled as NEEDING to appear in a particular room, in containers, on enemies or both/either
- Trying to check underfoot while standing on multiple dead NPCs will give you a menu to select which (see below).
- NPCs have their equipped item appearing in their inventory
- Player can switch out their equipped weapon with any other they find in containers or on dead enemies
- Player sprite and attack animation update to match equipped weapon
- UI updates to match equipped weapon
- Faster generation of initial stat values for enemies
- Added new weapons and categories - unreliable but potentially deadly cable whips and ballistic firearms
- Overhauled UI to be more responsive and better laid out
- Difficulty balancing on combat, player takes less damage than before and regens a small amount per turn
- Animation scripting changes
- Stopped button press event listening during pause, nullifying crashes
- Objects and weapons directly copy, then overwrite rather than inherit and overwrite, meaning they persist through save/load and keep all their functionality. (explained below)
- Hentai engine recreated ( 90%, will be actually finished today)
- Hentai anims restart/reset current loop when returning from pause to avoid sound and audio falling out of synch
- Hentai scene system is clean, crisp and maximally reuseable- press button. receive bacon



During this week I ran into a HORROR scenario I wasn't really expecting or necessarily equipped to deal with.
On saving and loading games, it turned out that most items were reverting to their default parent type. I'm still learning JS so I don't know for sure, but it seems like inheritance of parent objects works as a link, fine for normal purposes, but that link is severed by RMMV's save/load game processes, so loading an old save would turn all your items from [Micro Cassette] into [item], the default parent object's '.name' value.
I spend what felt like hours on this and found that weapons weren't affected because it turned out how I handled weapon objects was slightly different, and the answer was to replace all shallow references with deep copies.
I rejigged the way I handled items to a way that made more sense to my brain instead of the old way I made following advice from Stack Overflow not meant for my application, and this problem went away but FUCKING HELL was I scared for about a day there.

That brings me up until today, I'll be continuing to work on the hentai system for the next few days.
Polls going out on Patreon shortly to get a better idea of which elements were liked in the last game, which I should scale back, which I should expand upon.

Thanks for reading, I'll check in again soon, getting very close to being able to go back to sexyposting.

Your pal,
Oko

Sunday, 19 August 2018

Sunday Progress Report

Hey, here's what I've been doing this week, getting pretty close to closing both outstanding epics (Battle and Items).



Battle:

- NPCs now have a proper 'dead' state, after which they effectively turn into containers.
- All erased events are removed from the $gameMap listing after battle, to free up their eventId and prevent rare weird bugs caused by Ids not being reassigned, or being reassigned incorrectly.
- Remove 'move' cursor when player starts walking to stop rare bug where event collision wasn't removed quick enough and the move route was cancelled- will revisit.
- 1-handed Quality of life improvements to battle controls, double click an action to confirm it, press any other action's button to cancel (press 3 to aim, press 3 again to shoot, press 1 to choose where to walk to, press 1 again to confirm and start processing move)
- General walk action refinements, removed some early, now-redundant checks and additional scripts
- Fixed a really rare, difficult-to-reproduce bug was fixed after weeks of vexing me- I'd accidentally given global scope to a single-letter variable, so under certain conditions it was being accessed and changed elsewhere, wrecking a concurrent for loop
- On the back of that, learned how to list all defined global variables and fixed all similar out-of-scope instances

Items:

- All NPCs and Containers have a priority for being picked up by the context system, so standing on dead NPC bodies won't prevent interaction with adjacent doors, living NPCs or containers or other high priority items occupying the same space as a dead NPC
- Dead NPC priority is affected by their inventory being full or not, stacks of dead bodies occupying the same position can be looted in turn systematically, empty bodies going to the bottom of the deck
- NPC and Container position, direction and contents stored and restored on exit/leave to circumvent the way RPGMaker resets events on room reload
- Contextual quality of life to container interaction, interacting with a locker before it's opened will open the locker, previously the player would need to open it with another key before being able to interact with its contents.
- Added item USE cases, which allow things like health regen by USEing food
- Added item pool probability to make some objects much more likely to show up than others.
- Added range for item quantities, so you're likely to come across a dozen rounds of ammunition, but only one handgun, for example.
- Set up item Schedule which makes 100% sure to place key items which NEED to drop in a specified room into a container or enemy inventory in this room.
- Player inventory, containers and enemy inventories are sorted alphabetically with key items listed alphabetically up top like:

Key A
Key C
Normal A
Normal B
Normal C

This happens once for containers and enemies on creation and happens for player on inventory open.
- Player inventory upgraded with the behaviour improvements I gave to containers last week


Misc:

I wrote about 60% of the story for the first mission last week, which informed some of my priorities this week and I've made 5 mins of new music, which I'd like to keep fresh for the first trailer, but I'll happily share on youtube if there's enough interest.

I spent two full days getting instruments and mastering set up to sound how I'd like and really happy with the results. Learning Javascript has also improved the way my DAW is set up, chaining instruments and effects more logically and things like that.
Hopefully my production sounds to others like the step up I think I'm hearing. It's hard to judge too definitively.

That's about it from me, this next week will be improvements to item lists, implementing proper weapon switching (switch out your main weapon with one the enemy dropped) and I think then it'll be complex enough to move onto completing the mission story and begin scripting it out.
I'll maybe take another day out to work exclusively on music, too, because I've got the bug.

Hope the week's been good to you,
Oko

Sunday, 12 August 2018

New game clarification and little improvements


Hey, so I know I haven't shown anything sexy yet.
Not so much as a pixel nipple, nothing.
This game WILL be an adult / erotic title, but right now I'm just handling gameplay and interaction.
I appreciate it's nowhere near as fun to look at as anime tiddies, but the good stuff definitely IS coming soon.

New game clarification:

A few people are asking if Lateshifter is dead or if there's going to be a continuation of the story from the last episode and the answer is to both of these is "nah, sorry".
LS was always supposed to be slice of life episodes without continuity, so even if I stayed with the exact setting, the next episode was always meant to be another anon with his own problems and work assignments. I figured if every time it was a different protagonist, there was always a chance he could die or goto jail or whatever else. There'd be no set 'canon' except the ending YOU get, and that's what's important to me.

The good news, though, is that I plan for this new title to be a continuing narrative, so there will be returning characters as well as ones you meet in passing, and it'll still be made up of contained smaller adventure releases.
This might mean a different release (.exe) for each episode, but it's inevitable that I'm going to want to build cool new features into later episodes and I don't really want to hold back for fear of breaking earlier episodes by improving systems to be more flexible, agnostic or intelligent later.

I also don't really want to do incremental patches every week, making you download ¬200mb every week to get 5 more minutes down the line.
That can work well for other devs but I'm not sure that's best the best approach for what I'm trying to do.

This new game will otherwise be an expanded version of the original formula but with a couple of tweaks:

>Minigames will be replaced with small scale combat and exploration
Because fighting & loot > arbitrary high score

>The game will be less cutscene-intensive, with the player retaining direct control for much more of the time.
Because Lateshifter: Night Rain was very much an on-rails experience, and the plotted movement of characters introduced a lot of bugs and scripting tedium

>The setting is expanding too, so we'll be getting out of the city

Because I want to have adventures with sultry babes on hot exotic planets, investigate spooky abandoned space stations, get lost on the first day in a big city or try to pass the time at a sleepy remote space port, rather than always be on the way to work in purple Hong Kong.

But all the art, music, story, characters, everything that makes LS good will be there in this new game, and if you're on the fence at all, I'm looking forward to swaying you back toward me because I know you're going to like it. It's going to be much, much better.

Improvements:


Made a few improvements to my systems for item interaction, item discovery and battle movement.

Battle:
- Changed cursor movement when laying out the move path in battle to teleporting rather than sliding into position, makes things much faster and fixed a low repro bug where player move would be skipped due to cursor not changing collision type fast enough.
- Removed a few deprecated extra checks, they were nice to have but it's needless extra calculation

Item discovery:
- Removed the last remaining on-tick check for items in front of player. I previously had a system where after the player moves or turns, a function checks for items in front of the player once, but this function was still being run and returned continuously.
- Replaced the circumstances under which this check will run, instead of running continuously and listening for player direction or position changing, it now runs once when:
- outside of battle and
- player direction changes or
- player has finished moving,
with no extra listening required.
Really happy to have removed these constantly-running processes, I've been eliminating them for the last couple of weeks and the performance impact is measurable.

Item management:
- Changed logic with containers so that the currently highlighted item will remain highlighted as long as its stack exists, then default to whichever item now occupies the same slot, rather than defaulting to the topmost selection after every action.

Misc:
- Text now displays immediately for all text use cases except for during character dialogue.
- Added a couple more menu/window themes

That's it from me, enjoy your weekend pal,
hope you can take her easy on my behalf!
Oko


Friday, 10 August 2018

Let's catch up!

Alright, so.
Without further apologies, let's get going.

For a quick rundown of the last few months, here's what's been going on:

February:
-------------------------


Spent whatever idle time i had trying to come up with a prototype for a simplistic on-map tactics battle system using a tileset I made for a small scenario I wanted to hide inside Lateshifter (like the cryogenic vampire scene from the original demo).
I wanted to spend a little while maybe making an RNG-heavy dungeon delving game, just to cheer myself up at having essentially lost my 'real' game, as with only a few hours to spare a week it wouldn't have been worth it to continue on trying to push that boulder uphill.

I learned a little doing this, came up with a neat idea for contextual button-prompts for all actions- sort of like MMO combat, but also used outside of battle to talk to, look at, open doors, depending on what was nearby.
I think subconsciously I was still trying to design for the one-handed.
I kept running into brick walls, however, and I couldn't get the system to be sustainable long term. I could start up and run a single battle, but I couldn't find a way without scripting to clean up everything and ready for re-use. I abandoned the idea and went back to sulking about losing my real game.

March - April - May:

-------------------------

Nothing of value. I spent some time trying to readjust to normie life, playing online shooters and watching TV, with limited success. I'm just not happy when I've no goal to work toward.
I started messing around with my old project files near the end of the month and decided to learn some Javascript so that I could have the option of editing and maybe getting some esoteric extra functionality I needed from existing RMMV plugins.
(Lateshifter is almost entirely evented, with very, very minor script use, which is a big reason why things like scripted movement of npcs was so buggy and got people stuck. More on that in the eventual retrospective, I guess).

I wanted to make my game, or an offshoot version of it more into a one-player D&D sort of experience, with sliding scale dynamic DMing sort of like the director in Left 4 Dead.
I figure the first thing I'm going to need for an adventurous game is a way to handle combat, then a way to handle items and interactions, the rest theoretically being ground already tread with LS.

From here on I've been checking in at the 10th of every month, logging the current state of the game in screenshots and movies to check how I'm progressing.




June 10th:

-------------------------

June 10th - JS total - 307 lines

Made a little proof of concept for a scripted version of February's battle system, or rather the beginning parts. I think within the space of a week i'd learned just enough to gather all map events and create a schedule for turn orders, so I'd push a button and all the events would spring to life and all move toward the player one square. Progress!

Most of the work done in this month was copying and editing examples from the internet, learning how to do basic things and copy pasting out of fear of spelling mistakes ruining everything.




July 10th:

-------------------------

July 10th  - JS total - 1670 lines


This is where the bulk of the work really started. Every single day working between 6 and 12 hours on learning Javascript and applying it. Above is a test I did with some opposing teams, seeing how well they knocked the shit out of each other. Pretty well, it turns out.

Battle:
- Full battle schedule with alternating AI and Player turns.
- added initiative to determine turn order
- Added a HUD with icons like in February's test game
- Ranged and melee units
- Bullet ownership for ranged units
- Object augmentation to add stats to events
- Framework to have stats determine other things like which sounds are played for that unit (weapon sounds depending on weapon, vocal sounds depending on npc race / sex
- Attack and Defense rolls for combat, modeled on simple dungeon crawler boardgames of the 90s
- Dynamic delay between turns, based on what transpired this turn
- Intelligent turn skipping for boxed-in units
- System to handle sprite animation and misc anim for various battle actions (attack, defend, hurt, death)
- Failsafes for various systems with warnings and error logging
- Ability to mark certain obstacles as half-height (can be shot over, not walked through)
- AI implementation, different units have differing behaviour types
- Player/npc relations to determine who is neutral or an enemy in battle
- Invisible projectile raycasting implementation to determine if players or enemies can actually hit enemies in range
Ranged targets now are enemies in range to whom there is a clear line of sight.


Other:
- Intelligent checking for objects in front of player
- Allow contextual actions depending on what sort of object is in front of player

August 10th:

-------------------------

July29th  - JS total - 2002 lines

August 9th - JS total 2828 lines
Really hard at it now, above shows one of the optional graphical filters I've added.
I've currently settings for old TVs, Lateshifter mode, """HD""" mode and basic filterless mode.


Battle:
- Camera automation
- Check that npcs are actually onscreen before proceeding with turn
- Dynamic target choosing for enemies, prioritize units attacking self, then enemy already targeted if in range, then closest enemy
- Missed projectiles carry on until hitting another impassable object
- Added rudimentary system to add enemies on the fly and integrate them to an ongoing battle if applicable
- Death animations and brief comic gore
- Added 3 more AI types
- Made existing AI types much more intelligent
- Made AI maleable, with injured enemies becoming more cautious
- Set special rules and extended range for pathfinding to be more intelligent
- Added failsafes for any AI troubles with error reporting (no reports yet)
- Weapon-agnostic battle changes
- Weapon pickups
- Intelligent UI for displaying current weapon
- Turn-long 'unsteady' modifiers for successful attacks on unready enemies

Other:
- Added series of graphic filters
- Added series of possible menu skins
- Added custom menu
- Custom menu options
- Repositioning all menu objects
- Changed object/npc detection to be more intelligent, prefer alive units when standing on dead
- Functions to automate number  x of enemy y spawning within range z of coordinates
- Intelligent auto-addition of newly created enemies to ongoing battle, allowing for scripted or cutscene late arrivals or adds.
- Container generation with dynamic and persistent contents
- Inventory system where objects can be removed from containers one at a time or all at a time, inspected and dropped
- Replaced all input common events with scripted event listeners, massively improving responsiveness
- Added battle juice, gore sounds


Which pretty much brings us up until today.
Thankfully I keep notes along with my backups to let me know what I did roughly since last one.
I probably should set up some sort of git repository, but I'm happy right now.

Now:

-------------------------


This week, I've added door pairing, allowing me to randomize which rooms will show up at the start of a new game, to give some replayability. Whether I'll make a lot of use of this or not, I'm not sure. Story beats will need to be more static, obviously.

Right now I'm working on the container system. I have dynamically created containers which get filled with items from a level list at their genesis. I'll be extending the item lists, weighting items to be more or less likely to show up and adding weapon pickups to the item system instead of being a separate thing.
I'd like players to be able to use items inside as well as outside combat, giving a cost to switching weapons or the ability to use suitable found items as improvised melee weapons (dragon di- I mean Iron Bars and cables haha) or ranged weapons (rocks, data tapes, small handfuls of change, whatever). It's a lot of fun seeing it come together.

That's it, catch you later on
Oko


Thursday, 9 August 2018

All systems online

Still alive, relatively safe, having another go at making vidyagaems.
I've been working on something every day for the last few months, but most of that has been learning how to Javascript, so I don't have anything graphic and sexy I'm ready to share just yet.

It's coming, though, and I'm confident this new work is better than anything I've done to date.
I've uploaded the LS OST to youtube meanwhile, because a few people asked for it.




Much love, sorry for the absence.
Let me know how you've been,

Oko

Tuesday, 6 February 2018

It was the best dream

If there's a less douchey way to say 'hiatus', let me know.

So the company I worked at IRL went under and I needed to move country at pretty short notice to take another job. I'm having to call a hiatus on Lateshifter, and I don't know for how long, man.

I spent the last year ignoring my IRL job and ignoring the signs the shit was about to hit the fan just so I could ditch out early every day to work on my game (fucken employee of the year over here) and so I wasn't really prepared. Fans of the show will know I've moved to 3 different countries in 2 years, so I'm just constantly wiped financially.

Because I'm such a broke bitch I need to really put the time in at this new gig, because I barely deserve it right now. Career is going to have to come first.
I really hoped before anything bad like this happened I could get LS to the point where I could make my living doing this and get outta the grind, but it is what it is.

I ain't mad, just blue. I changed Patreon back to per-release mid-January, because I don't want to take anybody's money if I can't work on this.

I never took a single cent from anybody during my stint as an internet filth baron, which makes it a lot easier to live with this intermission of indeterminate length.

Big thank you to everybody who stuck around. I hope I can come back to doing this, and I hope I'll see you then.

If you ever start to miss me before I get back, just put pink cellophane over an tiny monitor and run pornhub, it's the same fucking thing.

Love yourself.

Your friend for life,
Oko