Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

[FPS] Zortch Maxinum against the Alien Brainsuckers

A topic by mutantleg created Sep 27, 2022 Views: 5,384 Replies: 91
Viewing posts 1 to 54
(6 edits) (+23)

Alien meets Hostel in yet another low-poly sci-fi themed horror-comedy fps
(UPDATE: FINISHED!) https://mutantleg.itch.io/zortch

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

Let me get straight to the point:

This is Zortch Maxinum

a young adult girl (professional slacker) whose vacation took a turn for the worse


This is a Brainsucker:


highly intelligent being with a taste for human brains

 with the help of their cronies they have been capturing humans for centuries in whatever way they could
their latest scheme was to pretend their planet is a giant beach resort
fortunately only someone really dumb would fall for that ..
..err..

here are some screenshots:




also some teaser videos:


Progress so far:
Characters (models and animation), world textures, guns, gameplay code, bosses are mostly finished
There are still plenty of work to do and  so the planned release date is unknown

Fun facts:
- uses it's own custom engine
- started as LAB 2  but things got out of hand

that's all for now, see you at the next update!

(+1)

a little status update (I hope I can manage to make these weekly)

right now I'm busy combining various level stubs into full blown levels

hmm.. not much of an update I suppose and this page looks kind of empty
so here are a few more screenshots:

Swimming in the pool - pictured: indifferent jellyfish - and a giant eye is firing a homing missile


A pissed Bloop Tank is shooting electric charges at us, meanwhile a smaller one on the background is on fire


Shooting at some pipes for some reason - that weird looking thing is your shotgun


Not only the planet has no beaches - it doesn't even have a sea!


"The brochure was a lie - the sun was simply a spotlight"

(+1)

recovering from health issues (there goes the plan for an update every week)

still managed to do some small updates:

- finally got the framerate to be stable: there was a very silly error where the flares were projected and calculated even if no flare sprite was set and brought the frame rate down - now its a consistent 60fps as it should be

- optimisations for the level editor  - a seemingly never ending task
 I  still have trouble balancing maps as they get larger - turns out no matter how much you plan ahead or no many tricks one comes up with - the sheer amount of content will always be a problem e.g.: this is a supposed to be a small game and maps still got about 300-500 actors on them

some screenshots - of the editor this time - a look behind the scenes:

one of the more complicated rooms


a top down view (the tiny blue dots are actors - about the size of a human ingame)



setting up an ambush

(+1)

a small update -- I intent this devlog as a  semi-post-mortem as well -- and indeed it was started long long after I started making this game
so I would like to talk about some history so far:

- I started working on this right after Nekkrobox
- one of the goals was to improve upon things: have more guns, more enemies, improve content overall
- the project originally started as reasearch and practice and ended up in quite a feature creep
- there were about 30 enemies made until I realised I don't exactly have a plan with them


- development was more driven on what would be cool and what can work instead of concentrating a theme or idea
- this is still a problem right now - instead of focusing on finishing content my main concern is how to put existing content together


some problems I encountered and solved so far
- originally there was running and you would walk holding Shift - this was replaced by changing Shift to be sprinting - you are very fast and cannot shoot
- crouching turned into a replacement of sneaking - it not used much during the game but it gives a better immersion to have it
- a portable health kit was added - right now it counts as one of the weapons - as it was not a staple for FPS games a while I figured players might not notice it (we will see)
- many of the guns are a combination of multiple guns (the shotgun is both the single and double barreled one, the grenade launcher doubles as the rocket launcher)
- I also found out that a second reload makes guns feel better and the combat more intense - so for example for the shotgun originally you only had to pump it after every two shots - but a limit was added so it only can hold 12 shots
- still to make it less impactful - this update is only there to make the game feel better - Zortch reloads the gun 2 shells at a time


anyway please excuse my rambling, I realise it doesn't make much sense to anyone but for me yet
here is another vid with earlier versions of the characters:

(3 edits) (+1)

a small update:
as you know one of the problems with making maps for an FPS is that sometimes you just don't know what sort of enemy to place
especially if there are many to choose from
for some reason I decided that one of the problems is that I don't have enough types
and the one that is missing is an enemy that can jump and also run and fire at the same time
(naturally I immediately added 5 variants for this enemy .. but I digress)
now turns out giving such an enemy a grenade launcher is not that hot of an idea..
especially with monster infighting implemented..
observe:


"not sure if I'm still needed here"

on one hand and I want to leave it in as is .. because it's hilarious
on the other hand this kind of eliminates difficulty: you just need to
find a good  hiding spot and wait for your enemies to deal with eachother
(I figure the joke will get old quick)

such are the problems with the development of this game

(please note: they actually check before shooting to not shoot the other ones in the back
.. but with grenades this check doesn't do us any good)

(+2)

added yet another new enemy -- not partially true: I reworked an old one that was cut initially
the original idea for these metallic skulls was to shoot lasers at you from their eyes
but it was changed so they charge at you and explode on contact..
and to make them more visible they are on fire doing so
sounded good on paper but in practice they mostly end up attacking walls and going *clank*

on screenshots they look somewhat threatening (not to mention I'm ripping off at least 3 franchises with this! can you guess all three?)

the illusion unfortunately falls all apart in action:

(+1)

Looks like fun! I'm guessing your inspirations are Doom, Duke Nukem and Quake?

Thank you! Guess it was an easy question (still: good job :)

(+1)

Finally figured out what the first boss should be..
you would thing that is something that would have been figured out earlier of course
but thing is making the start of a game is such a hard thing:
it needs something to introduce people to the mechanics and still be entertaining
e.g. there is always a chance that this might be someones first fps game (fat chance but still)

then the later levels can go out of their way being crazy
and that is something much easier to plan out

of course it's obvious now but the first boss is one of the brainsuckers
for a while I was not sure if they should be the final boss or just a medium boss who show up
now and then and their leader to be the final boss

anyway some screenshots:

the first boss hard at work at this little terminal - some brainsuckers are invisible to be able to sneak up on their victims (we can add Predator to the ripped off franchises list .. of course in this game's lore they are coated in a special paint)


you can spot some snacks  at the desk..


afters some damage the boss becomes visible and more pissed at us


also the game sports a non-violent mode and this seem to be the right date to show it off

see you next time!

(1 edit) (+1)

addendum to the previous update -- I forgot to add screenshots of the so called first level (it evolved a bit since then of course)

Edit: reading back I realised I forgot to talk about the first level at all..

anyway: long story short is that I'm convinced that after the first part of the game is done
like the first 1-2 levels and first boss  the rest of the game will be easier to make
the idea is that the first levels are both and introduction to the player
and introduces the main mechanics but does not get too rough
of course it  all sounds very obvious -- the tricky part is how to think like a new player
from experience I found that new players are very creative when it comes to ignoring the obvious
and I need to think about every single possibility to make things airtight
.. so this is my biggest worry -- the first ~10 minutes of a game is everything and needs the most attention
and I lost count how many times I restarted this level

some of the prison cells


on our way to the reactor without any bad intentions


just looking around


there is a jailbreak in progress


"Rarr! Stop posting devlogs and finish this game already you slacker!" - yells the raptor

(1 edit) (+1)

- had some performance problems and decided to add fogging to the first level
- it's a prison level so I thought it would kill two birds with one stone: improve performance by not rendering far things and make it more moody
- problem is the walls got invisible if they got out of the camera frustum and the skybox got visible behind them
- I experimented and changed the sky to use stencil textures
- but the stencil caused problems with the framebuffer (off screen) rendering and I had to rewrite the whole thing
- but this has the added advantage that I can create weird rooms now:


also some screenshots:

I found out that if I use the same textures for the skybox as the level it gives the impression that the level is much  much bigger than it is


now its more like a city than a prison


also started the second level ..  here is a shot from the editor. I just wanted a small introductory section but then things got out of hand (maybe I'm getting better at this?)

until next time!

(+1)

still working on the second level

it got a bit bigger since last time  (maybe a little too big )


now it feels more like a vacation


I found that CSG and caves don't match: now I just use raw meshing to mold them to shape -- it feels like working with digital silly putty
another secret is that lowpoly caves are all about the texture


oh dear oh dear oh dear


upgraded the spider mines


they sure came a long way since their first draft


and finally here is a little video about them:

until next time!
(+2)

just a small update .. with small screenshots!

I  created a new skybox for the second level:
I realised I can combine a (seemingly) infinite plane with a regular skybox
if the skybox  has an alpha channel


also added a lens flare effect to the sun


there were of course a few bumps in the road:

MADRE DIOS

and I had to rewrite the sky rendering again:


also I found out I can use the console and screenshots to leave messages for myself to correct later on the maps:


until next time!

(+1)

just a small progress report this time

map 2 is more or less finished  there are some small errors still
(e.g. you can pick up the key through the forcefield without disabling it)
but the map structure is all there

for now here is a little collage of the progress:

last image also shows the baked lightmap



started on map3 - so far its a little green



also the red door has been redrawn .. it's hard to make photos with these dudes around
(of course I could disable them witch cheats but .. well it just  doesn't feel right)


hmm.. I guess I'm slowly losing my head

until next time!
(+2)

another small update (with small screenshots)

progress on the third map is going fine - in fact it's almost ready
(gameplay wise it's ready but I still want to place more decoration)



in case if you are wondering: those boxes are meant to be a maze
at first I worried that it will be too easy  to solve - naturally I keep getting lost in it during testing


here is an earlier version in wireframe view


also I started on making a restaurant based area for a later level ..
 I want to have some cheap burger joint in the game .. this is about its fifth restart


 thing is designing buildings is not my forte


and indeed the toilet has a fatal flaw

until next time!
(+1)

Love the art style and general story gist. What's your approach to the 3d modeling/workflow, especially with the guns? Any interesting inspirations for how you've designed them? Look forward to trying it sometime!

(1 edit) (+1)

thank you!  the workflow is  very very simple: box modelling and simple skeleton animation (I don' t even bother to rig and just use raw bones)
I have the advantage that there are no normal or specular maps to worry about  - so the textures are just painted by hand
the guns have the additional trick that I set up a camera with the ingame fov to see how it will look like..  nothing fancy really
and the rest is just endless iteration: I just keep changing things until I'm happy with the result

I tried to make guns that are useful gameplay wise rather than what looks or sounds cool - alas they mostly ended up grey and boring - the idea is that instead of getting better and better guns they are just tools and all equal (so the machine gun doesn't replaces the pistol - but this meant that the pistol has to be unique in some way and they kind of evolved on their own
and also there is lazyness: many weapons are combined into one e.g. the machine gun doubles as the sniper rifle  (but I guess that is also a convenience)

(+3)

- updated the console to have proper typing (and I'm ashamed to say that I have never heard of WM_CHAR before ..
one of the downsides of making your own engine I suppose)
- spent most of the time fixing bugs
- added a new weapon (kind of - you can now place the tripmines on the walls)
- updated breaking glass  effect

also the saving system is under testing .. had some major bugs with restoring the textures after a savegame is loaded


I'm not sure if I should be worried more about  that this cadaver managed to steal an items texture or the fact that he is rocking it

some update on the restaurant map as well:

still need to replace most of the textures but already looks ok lightmapped


and it somewhat looks like a restaurant



it kind of outgrew itself .. I wanted it to be a small part of a larger level
but now it's big enough to be it's own level


as you can see there are a lot of glass windows -
you will have a lot of fun on this map if you like breaking glass


I know I do

until next time!

(+3)

did some optimisations:
- the first level (prison) was running a bit slow -- turns out the root cause was the energy doors everywhere
and they slowed things down because their bounding box was way too big
- everyone was thinking too hard - when a monster stays put it tries to do a linetest every now and then
to check if the player is  seen - and I just placed way too many of them 
- frame skipping transition was way too visible 

also added a soccer field to the restaurant map:

in general development is plagued by feature creep
I thought this fancy isometric view would be useful for making maps ..
but it's only useful for making fancy screenshots

also added a soccer ball model

because that's important..

check  it out in action:


until next time!

(+3)

more optimisations
I did some profiling on the code to see what parts are still slow
turns out checking the  z-buffer (for flares) was as slow as rendering the whole scene
so the flare check was replaced by linetest (the downside that it only works against the geometry
and now you cannot blot out the sun with your guns)

finally fixed a curious error with sounds - on the second level a garage door wouldn't play..
but only if you went through  and finished the first level
turns out in OpenAL  alGetError is also used to clean up any previous errors
and you need to do that before doing anything critical


more optimisations for the first level: I had to remove some parts

unfortunately my occlusion culling is 2D - only the empty areas count as walls


not only that but these large holes are only potentially obstruct ..
I will need to come up with a better scheme in the future -- but for now I just need to
remember that carving out one large room and filling it with stuff is a bad idea to make a level


also I added the movieset to the ever growing restaurant level


it will be in this little silo


I was not too happy with the previous version - the initial idea was that it's a giant camcorder
that is recording the scene


so I decided to make an actual asset for the camera and not rely on the level editor


I believe this is what kids today call as jank

until next time!

(3 edits) (+2)

yet more optimisations..
- optimised  character shadows (and now they also can be turned off)
- optimised normals (monsters now use precached normals for lighting when they can)

also a major optimisation for collisons:
now my scheme for spatial subdivision  is a bit primitive ..
I use a giant 2D grid and each grid cells store a list of pointers to triangles
(they were originally a big std::vector of pointers but that turned out to be too slow
so now just a regular vector of pointers .. but I digress)
now turns out when testing for collisions what you want is a function
that stops testing as early as possible
what I mean is something that identify empty areas really well and doesn't do much testing
thing is the actual function that checks if a line hits a triangle is used very rarely
and most of the time you go through lists of triangles .. and going through this list is slow by itself
and with many moving characters all around the level  it just adds up

now early on I made a mistake and I only checked if a triangle is within a cell by a simple test
based  on it's minimum and maximum coordinates (aka the box the triangle fits in)


this  worked fine for small test levels  but as the levels grow it became a serious problem
even though the levels are still relatively  low poly (about ~50k tris per level)
anyway as you can see on this image this was a very wasteful approach
especially for large triangles (which are also used quite often due to the low poly
nature of the game)



and here we have the fixed version - adding this optimization nearly doubled the speed of the game
turns out it affects nearly everything: collisions, decals, dynamic lights etc.
all needed checks that used the grid

the fix is simple - there was already closest point to triangle test used by actors to move around
so this function was repurposed and
we check the cells center to the closest point in the triangle
and then we see if this closest point to that overlaps the cell
(in this case the cell is just a  axis aligned rectangle)


I'm in a bit of a rut level design wise .. I want to have a level before the second boss
but despite having many ideas for it everytime I start on it .. well it goes nowhere
and I keep restarting

(the restaurant level will come after the second boss - that part is covered)

anyway for now here is a video about the new tripmine weapon:

until next time!

(+1)

Ah collisions . . . I feel your pain. But glad to hear you got it figured out and improved your performance in the process, that's cool!

I like the animations in your video, especially the one where he spins the laser tripmine like a basketball on his finger.

The chair on top of the crates was amusingly unexpected.

Any particular reason why you have multiple verbs for a "Take" action? I saw "Nip", "Steal", "Filch", "Repossess" and "Grab" for what appeared to be the same action.

(+2)

Thank you!
I thought it would be funny to have more than one verb but I think I'm trying to hard
oh and 'repossess' is when you take back one that you placed so there is some logic in there
or at least when I added I think I knew what I was doing (like with the chair: if you bump into
it also starts rolling away and might set off the mines but I forgot to demonstrate that)

(2 edits) (+2)

this time I did some restructuring ..  thing is I lost track of how many level stubs I got
and realised that starting a new map from scratch can wait for later

here is the current level select  as you can see there are 5 bosses and about 19 levels (in  various stages)
so I decided that it's time to cut things and 15 levels + 5 bosses will be plenty
also 5 levels from these will be small and very linear maps
the four extra maps will be merged into .. wherever I can merge them into
and there will be 10 big levels - and by big I mean these will be the exploratory levels
so these will take about 10-15 mins per map and I predict that the full game will be about 3 hours tops
.. which is still a lot considering that my past games only took about 30 mins max to beat (according to lets plays I found)

ok so the plan is:
10 big maps  5 small maps  5 boss maps

of course these are just plans - and you know how plans are
(I originally wanted 30 large levels after all )


anyway this is one of the maps I reworked to be the new level 2 (so the old level 2 is now level 3 and so on)
this was originally a frankensteinish mish-mash of various ideas put together and they never quite fit
and back then I decided to deal with it later


this is how it looked like before the rework


this is after - as you can see only most of the lower part was kept


the little basketball field and the large room was what I wanted to keep  -
there is a joke with the basketball room that I absolutely insisted on having in the game
and so the whole map was twisted and turned to make it work


an unfriendly game of basketball



to get all secrets on this level you need to throw the ball in the hoop
just to screw with potential 100% speed runners



your reward is a powerup - in this case the Zortch equivalent of Dooms megasphere (extra health and armor)



still redoing this map was not easy - I left myself many notes with the
"just type it into the command line and make a screenshot " trick
which starting to prove itself very useful


sometimes I figured out the solution as I was typing (here I was wondering why some enemies didn't spawn)
many times I would just make a quick note without thinking .. like a reflex

in the end one thing is certain:

.. I'll see myself out

also here is another little gameplay video - this time about puzzle design:





until next time!
(2 edits) (+3)

warning - more crazy planning ahead
(mostly just updates on the levels)


ok so I added a little thumbs up icon for maps that I feel are good enough for release
of course after everything is done then I plan to polish them a bit - but for now they are good enough
the red circled ones are being built right now
and I plan to merge the two sewer-ish maps together
(they are sewer in name only - pipes and water pretty much it)
I don't know what will be the fate of the question marked maps yet


also there is this tiny level -- that is sort of completed and doesn't fit in with the rest
for now I figured it could be an unique level in the demo version



this map was originally going to be a city map at the later phase



not much was done - turns out big maps are hard to make and hard to play



after some trimming and moving things around this its current state



it's still pretty big but much more fun to play



another before image - things were a bit empty



it's amazing what a little paint and some iron grating can do



there is a little metro area - below the stairs you can find a little security room
where you can look at the security cams



the enemy behaviour keeps surprising me -- what is this mofo even doing?



also I combined the planetarium area with a miniboss map
the original idea for this map was that all room doors are locked
and you can only use the ventilation areas to go to new areas
and end up in small but bizzarre locations everytime
I'd still like to extend this a bit (make it more of a labyrinth)
but for now it's good enough



and the burger place saga is still on .. this time with a small update



the silo was moved into the cliff and acts to connect the two areas



the lower half of the map looks like a banana -- but I assure you it's not intentional

until next time!
(+2)

just a small update about some fixes

so I had a problem with lightmap errors popping up everywhere

turns out no matter how well you calculate the lights or how big the lightmap resolution is
there will be errors



some more visible than others



so the way the lightmap is now calculated is that the whole map is turned into one single mesh
which hindsight is not that a hot idea lightmap wise - but I digress

and then the triangles are grouped together into small surfaces based on their normals
the algorithm is pretty much trying to get the biggest flat surfaces possible
and then we do a planar uv on them (not that simple as it sounds)

now the problem here was that CSG was added to the editor and the resultings rooms
are  generated into one big mesh -- which is then cut into small pieces to help visibility culling
but the cuts are not perfect and by a very tiny bit the coordinates and uv coordinates are different
at the edge of a cut

now when the groups are built for the lightmaps it was too strict and looked for exact matches for vertex coordinates


now they are packed better - it's still not perfect as there are holes - but the space is much better used



 for many this is but a boring wall but for me - it simply pleases me to look at it

until next time!

(+1)

another small update 


I made a model for a small subway car - normally these things have about 2 - 3 doors on each sites and plenty seats
but turns out that is problematic when you want it to turn on a small level (no surprise there they are designed for straight tracks irl)


a look at the interior - it's fairly low poly but due to the fact it's a moving object it still gave me some trouble
problem is that my collision system is designed for large maps with large sparse triangles
and here we have a mesh with many small densely packed triangles
good news is that it's only a problem for the particle system - things add up with 1000 or so particles that happen
when you break a window .. or the train runs over something - another good news that it only seems to slow
down in debug mode



as you can see there is a small box around each car - the idea is that when a fly travels in your car
then the cars speed doesn't affect it - something something relative velocity and physics .. 
or put it in laymans terms: the particles or throwing a tnt inside look weird without it
anyway the box is there to help with that and is linked to the car



another interesting thing about this level is that the subway path is figured out first
and the rest of the level will be built around it

check it out in action:

until next time!

(+1)

video looks very good!

thank you!

(4 edits) (+1)

I'm still at solving technical issues 

finally figured out a solution for the vsync problem:
- so the thing is the rendering and game logic was optimised out of the wazoo but there were still problems
- turns out swapping the buffers takes time too - and if vsync is turned on it pretty much blocks everything
- also I need to issue a glFinish (it just waits until all drawing operations are complete) otherwise I get weird flickering
- in theory the video card (or gpu) and cpu work in parallel so you could just wait until the gpu finishes
- but in practice the gpu driver is usually a weird black box where anything can happen inside
(e.g. you have no control over triple buffering - only  works in fullscreen - or not - if the gpu feels like it - and afaik that is for every graphics api)
- so I had to move the rendering into a seperate thread
- which at first sounds sensible and obvious but sharing an opengl context between two windows is a minefield
- so now the game works great on my laptop (which is about 10 years old btw)
- works great on my potato machine for testing ( win XP and 20 years old)
- and goes completely wackoo on my third test machine (3 years old  Win10  and has some bogus Intel celeron gpu)
- it's a driver problem on the last one but I cannot seem to update the driver (installer just doesn't start and it's supposed to be the latest )
- the good news is that the game is fully playable otherwise and there are just some graphical shenanigans .. but it bothers me 
- now the strange thing is I measure about 10-12ms for the vsync swap on single thread
- but now that it's on a seperate thread it's only 1-2ms
- also all rendering had to be moved to the seperate thread because I cannot just swap in a different thread - I'm not sure why
- so my main problem is that things seem to behave a bit differently  on every PC
- I looked into other frameworks and engines and they seem to have the same problem - so at least I'm not the one who got mad

- and I almost forgot the best part - in the end I had to revert to the old single thread rendering
because using more than one thread caused the textures to not load
(sharing textures between context just doesn't seem to work as intended .. or there is some black magic trick to it that I'm not aware of )

- in the end what optimisation that sort of worked is to put the cart before the horse: do the rendering first and then the game update
and in the end I gave up on vsync -  of course this was just a quest to get vsync work with 60fps  so nothing really happened
and there is now just a choice in the options  to turn it on - with vsync on you get 30fps tops but no weird glitches
otherwise the game renders at 60fps and either has tearing or glitches or not

some exclusive shaky cam footage running on my  mini-laptop (win10 and worlds crappiest gpu)

of course I didn't quite master recording  and playing at the same time


anyway moving on to problems actually caused by my shenanigans:
- so I added an optimization where enemies don't bother to update their physics until  they get activated
- this resulted in an amusing scenario - where I placed a miniboss on a vent
and after it notices you the physics kick in and he immediately flies upwards Mach3.. observe:

until next time!

(+1)

Hmm, glFinish and then processing was tricky only at first glace.

As i understand this: when you process/render-calls, you only give data to driver(starts rendering at same time as get data, but really blackbox), then call glFinish and now it's time to render rest of data return control, but only when finished everything including buffer swapping. (glFinishTime= ~16ms - processTime)

And if you glFinish at start, you just ensure all old draw calls already rendered and buffer already swapped for elapsed <16ms from last frame, and now can prepare next portion.

And yes, it's me, unfortunate LAB remaker from 2019... Still has a terrible english and watching for your projects.

it's nice to see that you are still around !
(why LAB got so popular on itch i'll never know )

right now i ditched glFinish completely (swapbuffer is supposed to call it ? I just dont know anymore.. but seems to work better now)
and just do a glFlush .. the thing is no matter what I do everything works until I try to turn on vsync or try to add a second thread..
anway in hindsight I should have made a 30fps game instead - it's hard for me to tell the difference anyway
it's just wacky that in this age we can draw million-billion triangles  but draw calls and timing is still a problem

(+1)

I'm trying to take it easy and rest (like you supposed to on a holiday or something)
but find myself working on the game still

with most technical problems solved I have no choice but to make levels
(no wonder most people nowadays go with random level generation - this is some hard work)


so I had two sewer levels for some reason  and decided to combine them


only the large swimming pool area was kept from the top one - I'm not sure what to do with the rest (probably will be included in some other level)



this is a shot of the small sewer level - I thought it would be easy to make
but had the most problems .. and I'm still not happy with the lighting



for the subway level I added a hack to the game that exports the full path as a mesh


it's now easier to plan out things .. but I'm not sure what to add next

overall there are 6 maps still need to be finished  and three are already half done

anyway here is a long boring vid about the level editor:



see you next year!

(1 edit) (+1)

first update of the year - I never know when it's appropriate to stop pretending I'm resting and actually work .. and it happens each year.. I wonder how others do it? ๐Ÿค” 

but I digress

now according to the games lore the Brainsuckers are capturing spaceships (or at least used to)
those crash on the planet, the Brainsuckers open it up somehow (like a shellfish)
and then they promptly eat the brains of the crew - and use the remains of their body for experiments
this is an important story point because it explains some of the creatures backstory
(e.g. parasites from the spaceships,  body horror experiment enemeis)
..the thing is even though it sounds like a good idea that is logically built up
when it comes to  explaining it ingame things get tricky


so I thought why not hint about it in the level background (or skyboxes in this case)
e.g a skybox with a spaceship graveyard  (not easy as it sounds)
and there could be giant magnets to capture ships ..
thing is  it's not obvious what these are for  and I would still need to explain
about it in a manual or something



one of the first problems with a spaceship graveyard level is that you need spaceships
of course there are plenty of asset stores around but finding something with my games
style and my low poly demands is near impossible -- for now I'm trying to make as many as I can



naturally I made things even worse for myself because I want a big shuttle to be one of the levels
because I thought it would be interesting and look cool .. and be easy to do .. turns out it isn't



as I found out modelling a spaceship is rather simple  (any sort of geometry will do and just call it a ship)
the problematic part is texturing them
usually the cop out is to have add a lot of details to the surface and let the lights and shadows
do the hard work - a now ancient trick discovered by lucasarts for movies  - but this is a bit tricky with a lowpoly style



 another problem with 3D models - too often they look better without textures

until next time
(+1)

just a small update 

the burger map saga continues:

now I removed the football field (will be on another level)
and moved the restaurant in the lower canyon part
I'm not fully happy with the colors - it was supposed to look dawnish
(so not sunny but not in the night either)



also I started on another map - I felt there are not enough moving things on the maps
so this one will be a factory area full of them



there will be some jumping -- but everything moves slowly and there is no falling damage



still .. there are some bugs now and then


also a vid about the also in-progress shuttle level:


until next time!

(+1)

another small update

seems I figured out what the remaining maps should be
it's quite ironic: at first I wanted all the maps to be weird and abstract
hence why the game takes place on an alien world
but turns out that my brain just doesn't work that way
all of the levels need some logic behind them or they just feel wrong

anyway

I made this underground castle - it's kind of hard to see



there are plenty of guards - I guess people will can just follow where the bullets coming from



from up it looks better



also I added this secret area and wanted to add a brainsucker statue
but accidently added an invisible brainsucker instead .. works a lot better though


and here is a video of another level I'm working on - I added conveyor belts to the factory level


until next time!

(+1)

another small update (mostly just mapping updates)

only three maps left (sort of - polishing is still left for all maps)


still throwing around ideas for the last level - this one has a bunch of pyramids and teleports
it's not bad but I'm not sure about it



another idea for a bigger map - a large shopping mall
still at the early stages


a sort of multi-store map - the engine is not quite optimised for it but they are a lot of fun


so far it's shaping up better than I expected (I tried to make mall levels before
there are about 5-6 rejected ones)


for the subway level I'm just winging it .. the subway part looks great and works great
its the rest of the level that is tricky

until next time!
(+1)

another small update


added more areas to the mall map



I seem to be doing nothing but making maps lately .. it is really taking a toll on me
there is the usual argument of what is harder graphics or code when it comes to making the game
but I believe it's maps and levels
I might not be alone on this after all many people turn to randomly generated levels nowadays



I have trouble figuring out what the last map should be
this is one of the rejected ones .. some giant fortressish thing



another rejected idea but this one is somewhat better - a giant green
skyscraper laboratory hybrid



I don't see eye to eye with myself on this one
perhaps I'm over complicating things

things is from experience I know I'm on dangerous territory
usually when a game is almost done I'm just too tired to go on
and try to finish it by any means neccesary - often making most of the mistakes
I wonder how others do it?


until next time!

(+1)

Personally I like random generation, but it requires right place/genre. And most exiting results going from mix of handcrafted prefabs/rooms and generation...

You wondering earlier about LAB popularity, I can't talk for others, but I think it's consequence of cozy retro levels, satisfying weapon difficulty balance and good level partitioning.

When I looks at ZM screenshots, I feel like returns many years back, to HL with my first own PC. It feeling when you exiting about new unique weapons and try to figure-out new ways of interaction with environment.

I tried mapping myself many times. I love it as process, even when no one playing my maps include me. But mostly I miss something to finish it, sometimes just environment features to implement my thoughts or more sens to polish (when no one plays). I tried to write my own games to gain full control of gameplay and fill the gaps, but I was lack of patience, and just can't enjoy it enough time, to build something really-cool before inspiration was burned-out.

I think You already was done notable part of game to get fun as player, and have a wide control with custom engine, and may be just can have fun from mapping process itself... Yes, told man who can't really finish no one game even at jams.

(+1)

that is quite a generous comparison (thank you!) I hope it at least will bring back some of the feel
thing is I keep forgetting when I think about how others do it is that this is a solo project

so in the end I'm just getting burnt out .. made too much work for myself
for one  I'm taking a too big of a step from tile based maps to fully triangle based
plus it's not linear maps or open world maps -- there are  too much variables to pay attention to:
pickups, monsters, guns, difficulty levels, when to introduce them, placing too much or too little etc.

so I'm learning the hard way why people don't make games with these kind of levels anymore
it's just so much work

at first I thought it was just a question of experience - like just make more maps and get better
and that is sort of true but I had to realise that this is something one need knack for .. like it needs special talent

well I have not been in many jams either .. making a lot of small games is another talent entirely  (I just like to take my time)

(+1)

more map making shenanigans



decided to go with my first gut feeling and  put the burger place on its own level after all
I finally textured it and now it is in this little crater


the movie studio and the football field moved to the mall level



and retextured the shuttle on the uhh.. shuttle level

for now the plan is to take a break
and don't play/test the game make levels or do anything for a week at least
then look at it with fresh eyes and figure out what should be changed (go through all levels)
and then after everything is ready start on the final level
I might try to make some of the remaining artwork 
(I really should just rest but I know myself)

until next time!
(1 edit) (+2)

another small update

so for me being on a break is not such a good idea
either I start on new prototypes or start adding new features

I figured I could use the security cameras as mirrors
and then I implemented proper mirrors .. sort of
they only  work if looking at a certain axis
and I never bothered to fully animate Zortch herself

as you see the mirror doesn't exactly match what you do



that includes the gun you are holding - it's sort of like having a fixed sprite mirrored but its a 3D model
(also the animations are kind of cheap)  on the other hand having broken mirrors in FPS games
is kind of a tradition (these are just broken in different ways)


apart from that I'm drawing ads for the walls, many levels take place in ruined cities
and I thought placing these will make them more lively
this one is painted from scratch - showing the tasty cuts of a brain



this one is a collage of public domain pictures



and I'm regret to admit but this is AI generated .. at first I was going to repaint it in my own style
but I had to realise I couldn't top it



and this is an ad for Nekkrobox (Super Nekkrobox  that is .. a future sequel I hope I can actually make one day)



what about you? can you believe these prices?


also some video versions, this is the old version:


and this is the new one:



until next time!

(+2)

I think the AI art makes perfect sense for the posters! And I love the idea that alien races worry about shaving and brushing their teeth just as we do. 

(+1)

I imagine they do - but it's something people don't talk about - like how they don't show toilets in star trek

 at first I only wanted to use AI as an inspiration .. I kind of feel bad about it
(not so much because it's cheating it's just the .. whole project feels less personal..
if it was some joke wad/mod thing it would be different)

I really need to pick up the pace - we might be a few weeks from AI making FPS games ๐Ÿค”

(1 edit) (+2)

another small update

I had to realise that the maps still need some overhaul
long story short I'm redoing the burger level (again)
figured I don't have enough ideas for a final level
and decided to combine what I got with the mall level (making it the final one)
and added the oil rig level that was almost finished and had no idea where to
place before in its place

so to sum it up I thought I'm closing to the finish line
but I had to face the facts that despite all the work I'm still very far



also added a flashlight - only had to rewrite the whole map rendering for it

check it out in action:


also worked on the skyboxes



some of them turned out pretty good


until next time!

(+1)

Good job on the flamethrower! Flashlight looks good too!

(1 edit) (+1)

thank you!

at first I felt bad about adding the flashlight (it's pretty much feature creep)
but turns out the new rendering  shed light on some geometry errors too

I made some errors in the editor and cutting triangles sometimes doubled them (like two triangles on same place that overlap)
so now I have to re-export all maps .. a lot of extra work but I guess it was better that it was found out before release

(+1)

an even smaller update this time

finally done with the burger level (phew!)


in the end I moved the soccer field section back there
this was the most difficult map to make so far



the mall level is almost done - mostly the  enemy placement is missing
I have some additional ideas I want to add but I feel burnt out and really need a break

considering that at the start of this devlog there was only one single finished level
and now there are about 20 I think I made good progress
on the other hand I never want to make a game this big again
which is ironic because it's a small game.. oh well


what's left is making the ending and some additional artwork
.. and endless polishing and testing


until next time!
(1 edit) (+1)

a surprise update: public beta test!

https://mutantleg.itch.io/zortchtest


(1 edit) (+1)

I got a BSP bug straight from start... 180deg at first room exit side hidding almost everthing, and most of pos+angle in next room.

W7 x64 GTX1060GT, W10 GTX750TI.


First room (normal view)

Same as prev. screenshot but ~3deg righter...

Some point at second room

Any points have some yaw range as normal view (most of time 180deg range, but ~30deg at room corner)


P.S.: Warrior + BSP bug and i got last shot at stairs, almost everething destroyed with wrench-throwing (turret with bild hit&run throwing around corner)

(+1)

good job! I guess the game is a bit too easy ๐Ÿค”

so far I only have a hunch of what might cause this:
if you enter the following console command: darkfog 0
are there any changes?

(console is the ` key same as in LAB)

(+1)

I see no effect from this command. At least for first two rooms. Also i try to switch some video settings, but this wont help.

P.S.: W10 fresh installed two weeks ago, without noticed tricks and tuning have same problem.

(1 edit)

oh well.. thanks for trying it out anyway! (btw is it the same error on both the W7 and W10? or just W10?)

 I suspect it's a gpu thing ๐Ÿค” (because the semi-transparent stuff is visible the culling logic seems to work)

(+1)

Both, as i mentioned above GTX750TI and GTX1060GT, can't check other video cards for now, but will try integrated intel tomorrow.

I think I figured it out: it's something going wrong with the skybox stencil

the odd thing is that the stencil works on some gpu and not on others
on some of them the stencil test always passes .. and I'm not sure why
(so much for my stencil based skybox trick)

still need to figure out how to fix it though ๐Ÿค”

(3 edits) (+1)

Personally with my video i use stencil a lot for portals like Portal, and some more tricks, and see no bugs. (over webGL)

Win 7 using old driver and Win 10 latest.

I saw something related to skybox and wrong culling with some versions of GZDoom, but it looks more like a leak through the skybox than occlusion.

I found out what was the problem and it was all my fault:
- for antialiasing (under windows) I need to create a second window to check if opengl supports it
- this second one also needs to check a "pixel format descriptor"
- and for this second one I forgot to add requirement for a stencil buffer
so either you got one that had stencil or not .. it was random

anyway I just uploaded the fixed version; hopefully this was the only major problem:
https://mutantleg.itch.io/zortchtest

(10 edits) (+1)

I am not played a lot, but some random observations:

1) Wrench/multitool alt-fire-stun a terrible effective, just a ultimate sniper-AOE to stay unhit against 90% enemies...

2) Some force fields hurts some not... (I think I am mistake, and FF totally safe)

3) I can't reach roach and palm at cells under FF ); But the hand looks friendly!

4) Guys pretend what see no dynamite spawning from nowhere... I thought they just like fireworks!!!

5) I mentioned about wrench really best sniper weapon?

6) Small difference between breakable and drag-able crates.

7) I am kill-control every corpse just in case... I am absolute not ass-bitten at first 5min of game...

8) And yes, I am feel warrior more as easy than normal difficulty. (If won't striking into too spread crowd with wrench return-cooldown)

9) 8 secrets at first level it's just wonderful and terrible at same time... (I found only 2 for now, but I have troubles with motion sickness for last couple of days and secret-hunting beat me too hard)

10) Level larger than I was expected. First level remembers me more Quake2 and Unreal1 than HL1 about I wrote earlier.

upd>>>

11) Shield + wrench = cheat

12) Doors not only open by shoot but close too, You can play this game with mobs

13) At max difficulty sometimes still alive mobs drop weapon when stumbles then I loot it and mob still can shoot to me (It's bug or feature?) I got thee from one...

14) I can't loot dinosaurs food guards just before level exit :'(

<<<upd

Most of indie FPS I was played for last 2-4 years just too FPS(without notable portion of random funny things, it's too boring for me last decades) or GZDoom mods sometimes funny but too doomy (2.5D and limited interaction). It's funny when You drop a some games because they too long, and replay other many times because they too short but enjoyable...

P.S.: Be cool if full game have map/chapter selection like LAB, I think it's very useful feature for almost-every FPS longer than two hours and especially when replaying... (As an example some levels of LAB, ProjectWarlock1, HL2 etc. I replayed a lot more than all others in sum)

Wrench sniping (point not a crosshair but his last projectile, even shotgun shells easy to evade from this distance):


(1 edit) (+1)

post zortchtest update!

first of all a recap for those not in the loop,
the zortchtest revealed a few very large bugs:
(also once again thanks for everyone who tried zortchtest)

 there was an error with the stencil test:
  - on windows if you want anti-aliasing you need to make two windows: one to request an opengl context - with the opengl context you can ask if the gpu supports anti-aliasing - if you do then you close this window and make a new opengl window with anti-aliasing support
- and there was a problem on the second window where I forgot to request a stencil buffer - and in this case you get a window format that either supports it or don't - and it was a toss up - some gpus returned one with the buffer and one without
- the stencil is used to draw the skybox - surfaces marked with the skybox texture only draw into the stencil
- the skybox is drawn after this step - without any depth checking - and without a stencil buffer the stencil test always passes - so the skybox ended up obscuring the whole world

there was a problem with loading things from zip:
- all the data is stored in large zip files
- loading from these files was surprisingly slow
- turns out it was opening and closing the file for every texture load
- this slowed things down for the initial load of the game (and somewhat loading textures for levels)
- there was a simple fix  for this - open the zip at start of loading and close it when it's done
- and still use the old method for loading resources ingame (which happens very rarely)

and now I'd like to talk about my  third big mistake: scaling of the lightmaps
- initially I wrote the unwrapper to maximise the size of the lightmaps
- the lightmaps are stored in one big single atlas texture (it's good practice to use as few textures as possible - switching between them is slow)
- I started to work on a new lightmapper and my goal was to be able to have multiple lightmaps in the game
- initially I was thinking of having lightmaps with the max size of 1024x1024
- because I have a small old laptop and this it's maximum resolution
- also old games like Quake3 had multiple lightmaps of 256x256 because at the time many video cards had this as max resolution
- now the thing is todays even the crappiest gpu has a max resolution of 16384x16384 per texture
- and in the level editor I have a preview mode - the lightmap is 256x256 for the whole level and it looks passable
- long story short: if I don't try to maximise the space used for the lightmap atlas and just say 32x32 world units is equal to 1x1 lightmap pixel
then - even for the biggest map - the lightmap comfortably fits into a 2048x2048 texture - with space to spare
- and on older gpus I just resize the texture and it still looks good enough
- I'm a fool.. an utter fool ๐Ÿ˜”


a screen from the editor - the lightmap for the entire map is a single 256x256 texture



I added an option to scale textures down if they are too big - and tested it by manually setting it
to a small value - this is a screenshot of the first test


I made a mistake somewhere and things got unintentionally funky


this a screenshot with the fix - the max texture size is set to 32x32 for debug


I kinda like this style - we now truly channeling the spirit of the N64


this is one of the old lightmaps - I tried to scale the uv coordinates to maximise the usage of space
 this didn't result in better looking lightmaps ingame - but more time needed to bake them


scaled down version of the lightmap (from the same level)
there is a lot of wasted space now - but the lightmap looks better ingame
and takes less time to bake



be sure to try out ZortchTest and tell me what you think!


until next time!

(+1)

another small update

mostly working on fixing bugs (how can such a small game have so many bugs? ๐Ÿ˜”
adding small missing features - like giving the sharks ability to eat hamburgers
and boring stuff like adding extra details to levels:


starting area of a boss room - everything is all over the place



.. and here is the updated version: everything is neatly arranged  according to feng shui


 
I swear every time I open this map this room gets taller ๐Ÿค”



I wonder if the games subtle environmental humor will be appreciated
on one hand: the problem was that the room felt too empty - that mission is accomplished
on the other hand: I thought it would be funny if they  tried to use a nuclear box as a makeshift beam
but it gives the impression that the ceiling has fallen on the box - so much for implementing ideas  ๐Ÿ˜”


and finally: I tried to make a screenshot of the fan's new ambient sound - I may be getting tired ๐Ÿฅฑ


until next time!
and remember: you can already play the first level in ZortchTest!
(1 edit) (+1)

and now for a mini update

I'm finally done with the ending - it's the longest ending I ever made for a game
but also feels really cheap..
it's kind of weird how much work was put into this game overall and it still feels cheap ๐Ÿค”
(let this be a lesson to you kids: hard work doesn't lead to success - but I 'm getting ahead of myself)

anyway .. what is left is more refinement for the levels
they are all pretty much finished but could use more secret areas:
- there are not enough walls that can be destroyed by explosives I feel
- also there is a mysterious helper who helps you all through the game who is leaving messages for you
(and that is also how all the supplies lying around is explained)
I only need to actually hide these messages about otherwise the ending will just seem silly
(there is a big reveal about who is it)


now let me tell you - posing a low poly character around is not as easy as it looks:
Zortch may be ready for her closeup but her textures are certainly aren't
.. oh well that is programmer graphics for you

also some videos:
did I mention there are water sections in the game? and there are fish? and they are called piranha sharks? good thing they prefer fast food..



and another gameplay video:

and for my usual broken record moment: be sure to try out ZortchTest! (and comment about what you didn't like in it)

(1 edit) (+1)

time for a micro update .. with micro screenshots!

I did a full playtest of the game today
the first three episodes seem to be great
the fourth is ok
and the fifth is a disaster

anyway here are some of the highlights  of the test:


I need to rethink the factory area
climbing up on moving stuff is not as fun as I thought
well.. the climbing is fun it's the  part where
you fall all the way down and have to do it over again is problematic
anyway this level needs a major rework



the shuttle level has a giant floor covered  in fans so it's a flying level
and turns out grenades caught in the fan never explode


on the last level the conveyors don't work
for this at least I know what is wrong



and I couldn't even check my time because
the ending got broken in the way
(it got tested hundreds of times before
and only broke on the playtest )



and there are other unrelated bugs..
but I don't know where to even begin

until next time!

(1 edit) (+1)

and it's time for another update

ok so as a quick recap - I have an almost finished version of the game now
 (minus some artwork and some bugs)
but I decided that I'm not happy with some of the levels
and now I try to re-arrange or replace some of them
(I saved the current version just in case - maybe I will release
it one day as a curiosity)


this was an old level that was meant to be some ruins
I added some textures and made it a sort of stealth level
(well the stealth is done with invisibility powerup mostly and it's none of that
scripted forced stuff - if you bring enough guns it's no longer stealth)


some more environmental storytelling
I connected one of the city levels with the subway level (they are still seperate levels
but now follow each other logically)



I have no idea what to do with this level
it's finished and mostly works .. there is just no good slot to place it
I try to avoid maps with heavy combat to follow each other



one Idea I had is to replace it with a completely new level
this one is shaping up quite well - it's mostly a mish-mash of older unfinished maps
(it takes place in a trash dump so it felt appropriate to make it from reused stuff too)


some parts are still heavily under progress - also am I getting a mileage out of this texture or what?



I think I may be ruining this joke to the ground



remember to try out ZortchTest and give me some feedback!

until next time!

(+1)

Hey, I'm curious about how you handle collisions in your engine. If there's a devlog you've written on it I might have missed it?
Are characters AABBs? I don't know if this is 100% accurate but I'd heard that Quake used (discrete?) ray intersection tests against Minkowski summed geometry. Is this the same as what you're doing? 

(3 edits) (+1)

I think I wanted to write about it just forgot 

anyway from what I know Quake is using the BSP for all world collisions
and their trick is to extrude the walls and floors inwards
the advantage is this makes collision very elegant (simple and fast): point to plane collisions for all world collision (no worry about triangles)

and the disadvantage is they need to store multiple copy of the level (e.g. one for bullets-unextruded, one for humans, one for big stuff like shamblers )

and I think this what they mean by the Minkowski geo thing  (I'm not sure about this but I think it refers to adding the volume of one object to another and changing it to a point to object test - something like that)


I'm afraid Zortch is not this sophisticated or elegant: there is a large triangle soup and it's sorted onto a 2D grid  and it's mostly sphere to triangle and line to triangle test
(and characters do a cylinder to cylinder test against each other)
it's quite a complicated mess, I prepared some slides that might explain it better:

there are also many edge cases: a character might stand on another, a character might stand on another
that is travelling on a conveyor belt or mover ..  and so you can only stack crates the moving creatures
will drop you off


it's a complicated thing - there are seperate item classes for items affected by gravity,
ones that stay put and ones floating in air etc.


this made thin enemies very hard to hit - the female guards use slightly bigger OBB than needed
(also all heads use a bigger radius - where there is a head that is)
and of course some bones are marked to not to be hit at all
and I forgot to mention on the slide: the AABB of the character is fixed and not affected by the 3D models box
(usually smaller than the character)


another trick is that the sphere to triangle test needs to be done multiple times
because the new velocity might push the object into another triangle
(not to mention moving geometry also needs to be tested every time)

of course all this trouble is to climb stairs and small heights effortlessly
which sometimes works too well - you auto jump over any railing
there was also a problem with slopes - with sphere collison you get 'free' sliding
but here it had to be hacked in based on the triangle normal

gibs and grenades use a simplified  method where it's only sphere against triangle


(there were problems with this of course: walls would often push out grenades before it could collide with them
so there are extra checks to see if the mover actually changed place etc)

in summary the collision system is a collection of hacks held together with prayer and glue

(+2)

I'm sorry it took me so long to respond but I really am thankful that you've written such a detailed reply!! It's interesting to see how youve approached it

no worries, I'm happy to answer all questions ๐Ÿ‘

(+1)

another update

I started writing a help file (just simple single html one) for the editor
and after a full page (one screenful) of explaining hotkeys I realised it might be a more complicated program
than I remembered.. and I still haven't started on the model editing shortcuts

anyway
I'm done with rearranging the maps - made the hard decision to not to add more
I really wanted a 5x5 grid but I just don't have enough maps in me
I got enough raw material for it - just not good material

thing is I'm just tired and I had to realise I'm overcooking the game
and need to accept that there are levels and  ideas that I can't fit in no matter how good the initial idea was
so I need to face the music .. face the fact there are some ideas I just can't get to work
that only sounded good on paper  or I'm just simply not good enough to make work
anyway time for the last push and get this thing completed

still there are a few areas that I just can't let go:


the burgermap so far was nothing but trouble - I made about 4-5 variations for it and none of them worked
I tried to fit the restaurant into multiple existing maps but just doesn't fit
thing is it's an interesting area just not fun for combat
even redid the burger on the top - it now looks worse than ever
it's just an area I really want in the game  no matter what
ironically  it was first a small little amusing easy to do idea
I'm still hoping for a miracle - some idea where I could fit it
but I might need to let this one go

there are many more scenes I want to add of course
like this movie scene
this one is a bit easier because it only needs a small room


the planet scene I want to definitely add - but it's a big room
it's harder to figure out a good place for it


and for the toilet scene - I might already have an idea where it could fit in



also I  finally painted icons for the level select (mostly by painting over screenshots)
getting closer to completion 

anyway let me shill ZortchTest one more time (this is the first level of the game you can already play)

until next time!

(1 edit) (+3)

what do you know yet another update

recently Zortch got featured on Alpha Beta Gamer
and I received plenty of feedback to digest and address

- I changed the pain sounds because they reported to be annoying (they added early on and I got kinda used to them over the years)
- I added a ketchup violence mode (which turns all creatures blood to red)
the original idea for the colors is that you are fighting a diverse cast of aliens (many with their own agenda)
many of them don't have blood (the pink guards are just jelly blobs pretending to be humanoids - e.g. this is why they don't have eyes and have weird mouths)
but of course this is just my lore .. which is the official lore

- I separated the reload and use button (it felt awkward for many .. so much for my bright ideas)
- and there are still some issues that I'm not sure how to fix - saving seems to be slow on some systems
at first I thought it was because I use a big xml text file for a save (I should make a seperate post about how saving works)
but it seems to be fast on my system .. maybe capturing the screen for the preview image is slow on some GPU? I can only guess for now

the game is getting closer and closer to completion but I think people might potentially overhype themselves
as far as I'm concerned this is just a small fun hobby project ๐Ÿค” (that might make a few bucks ๐Ÿ˜…)
 so there are some concerns that I just won't be able to address (e.g. repetitiveness, bad graphics etc.)

there are of course some semi important things - there is confusion about that you are playing as a girl or not
for now I'm not sure if I should stress about Zortch's personality or character ingame (she is a woman of few words)
the way I see it is that she is this tomboyish girl, kind of a country bumpkin who would need to walk miles
just to check the mailbox and  sees guns as toys - so she and the Brainsuckers, the other stars of the show,
seemed to be logical foils to each other
the problem of course is that these ideas are mostly in my head and telling them in the game
in a non-obstructive but noticeable way is tricky

anyway I'm glad because I finally have all the scenes I wanted in the game:

in the end I even found space for the burger joint, it was included on e1m2 (aka. the second level)
you can even see that dude jumping in joy about it

of course not everything is rainbow and sunshine:

(let this be a lesson - adding crouching to a game brings nothing but problems)


until next time!

(+1)

Congrats on getting featured in Alpha Beta Gamer! Did they approach you or did you ask them to check your game out? 

A blog on how you handle saving would be worth reading! I've been interested in how this is done in games.

(1 edit) (+2)

it happened out of the blue: there was just a sudden surge in downloads and I even had to follow the url referrals to find out why
but alas the download count is back to normal now .. my 15 minutes of fame is over ๐Ÿ˜”

anyway..
I guess my method of making the save files is a bit unorthodox :
- every actor in the game is derived from a single base class
- each actor has an unique id
- they use this to refer to each other instead of pointers (a big hash map is used to pair id and actor pointers)
- this saves me a lot of trouble: actors can refer to each other without smart pointers and pointers don't need to be turned to handles during saving
- one problem though is that there are about 400 different actor classes (it's a mess)
- when you load a game you need to figure out which object class need to be recreated
- for this the class name is saved (there is a handy function called "typeid" to extract this)
- and to ease the pain of creating an object factory I abuse a C/C++ feature where you can set
a variable using a function (with macro magic each actor has a seperate function to create itself - a pointer to this function is registered into a list of character array at the very start - of course this is not a good practice and it's a big hack but works great)
- for saving everything is stored in a giant xml file:
   -  this has the advantage that the order of variables doesn't matter
    (if I add new variables later in patches I don't necessarily break old saves)
  - and also I can use the save files for debugging (e.g. to test if saving is correct I can reload the save - save it again and compare the save files)
  - the disadvantage is that it's slightly slower than storing them in binary
  (also they can be hacked very easily - but I don't mind that)
- they also have a somewhat big file size and stored in a compressed form
- there is also extra data stored at the start for the save menu to know the date and map name
but in hindsight this info should have been stored in a seperate file (like the screenshots)
 also I guess compressing them is a bit of an overkill (there is not much space saved approx 1.5mb  files  compresed down to 150kb  size)
- for maps only the name of the map is stored - to save space - but this means if I update a map I potentially break saves

- and of course there is a seperate file to store which map was reached for level select - but this is just a single value

sorry for the wall of text - I don't really have idea how to illustrate this - it's mostly code related stuff

(+1)

Thanks for the detailed explanation -- it sounds way more intimidating than it probably is. Good to know though that using xml won't "break old saves". I've seen SOOO many games here on Itch and on Kickstarter where the developer has to put out a notice saying something like, "Hey guys, v5.0 of my game is out . . . but old saves won't work with it." And of course the players get very irritated at that. But sounds like you got that part figured out, so good for you! :)

(+1)

Hey, this looks really cool! I played the heck out of Quake and Duke back in the day. Any timeline for the full release?

Thank you! sometime in the next few months (in a way it's complete - can be played through - just needs polishing)

also good luck with Bedrock High it looks cool ๐Ÿ‘

(+1)

Thanks, friend! Gave you a follow. :)

(2 edits) (+2)

just a small update

big news is that now I got some help - FreeHawk has agreed to beta test the game
I kind of pride myself on someone who is good at finding bugs - but this project
turned out to be simply too big

anyway we already found bugs I overlooked (e.g. shotgun sometimes doesn't reload when you run out)
and I'm already thinking about refinements for some levels

there was also one big bug that happened when testing the beta
I fixed the bug that could cause the player to get stuck in the hamburger
and random small holes in general
(it was related to clamping to the terrain)
and I feel more confident now about making levels and adding areas

but in turn this fix caused the second boss to simply disappear midfight
I drew a handy chart about what happened:


the cause was that with the new fix the boss was able to fit into smaller holes
there are special cases with geometry  e.g. when there is a slope on the ceiling
which are difficult to handle - so in this case the actors do multiple checks
to see if they were pushed into the wall
now this is a costly calculation so there is only a limited number of checks:
the player checks max  64 times - but enemies only 8 times
so the fix was simple: for all bosses the max check was increased to 64
also in case they fall off the map they count now as defeated so you don't get stuck on the level

another thing I'm working on is the ability to add custom levels
the editor is hard to use so I doubt there will be many made
but I thought I could include some of  the cut or unfinished areas this way
there is not much to mod  unfortunately - most of the game logic  is hard coded
but I figured some might want to add extra textures
so I added support to resize non power of 2 ones - just in case

this didn't went smoothly at first 

there is one big problem I'm not sure how to fix:
there is a potential crash with alt-tab -ing
but according to my research it's just something
win10 and win11 sometimes does
and it affects all games (wtf)

one solution is to use borderless window for fullscreen
but the game is already using that
so I'm not sure what to do about this

anyway despite all the problems release is getting very close
the last episode still needs some tweaking
and I want  to at least enhance the final boss a bit
not sure how to explain it without spoiling it though

until next time!

(+2)

mini update

- finally fixed a light issue that only came up on some systems
turns out it was my fault again by screwing up an equation somewhere
the guns look a bit better now
- turns out there was not one but two issues with the shotgun reload

- working on the help file - made some animated gifs for the characters:

here we see Zortch in her natural state: confused but chill

right now the help file is just a html page
I hope I can turn it into a pdf later (but it looks better with animations)

originally I wanted the manual to be ingame
but I found that writing something witty for 30+ characters
is an impossible task

still it was nice to take a look at all the characters
the code is still there but needs major cleanup
maybe I'll restore it one day

I still need to do a write up on what changed on the first level of ZortchTest
and why .. but I'm too tired
there is just so much testing -- and I always find at least one little thing I want to change

"Until next time!"

(1 edit) (+2)

another mini update 

I was going to send an updated beta to FreeHawk
and I did a quick test before that:
and the ambient sounds went completely bonkers
so my top priority is fixing this

I keep forgetting that every time I want to find serious  bugs
all I need to do is to try and make a release ๐Ÿค”

for now the planned release is "sometime in April"
but I'm preparing a demo  just in case
I plan to have remixes of some of the levels for it - some of the easier areas that is
the thing is I kind of overshoot: I was in the impression that I'm making a small game
with very easy levels - but that is only because I know where everything is
 ok that is not fully true:  I don't remember most of the secrets  ๐Ÿ˜”
 the original plan was to just release episode 1 as the demo
but I feel I made it  too intimidating for new players

anyway something will be released in April no matter what
and I need to remember to not release anything on April 1st ๐Ÿค”
(as no doubt that  would  lead to confusion)

for now here is a small vid with some recent changes:

Until next time!


"Who knew making games is so hard?"
(+1)

How about other market-places than itch.io? May be steam? Or maybe direct buy in some way? (I have some troubles with payments onto itch.io/paypal and want be prepared...)

(+2)

well steam is kind of planned for later it will be released on itch first
anyway I sent you an email (if you didn't receive it please write to mutantleg(at)gmail.com)

(+2)

another update

big news is that Abnessor is now also helping with testing

myself I'm mostly dealing with boring stuff like fixing bugs
like getting the framerate stable on as much machines as possible

now the game itself doesn't consume much resources
it should run about 60fps on an Intel UHD 600 GPU
(which has the extravagant 3DMark score of 134 https://www.3dmark.com/fs/23399206)

the funny part is that it only does it in windowed mode (according to tests  on my potato win10 laptop)
and it all falls apart on fullscreen (vsync goes haywire and sometimes waits more than 1 frame worth )
according to my research it's some sort of driver bug
that affects all of these cards - so I'm trying to figure out a workaround

also I thought it would be a good idea to target 60fps
now there are hardcore folks who demand more (with gaming PCs)
and there are many people for whom 60 is too much (causes nausea and motion sickness)
so in the end 60 is a framerate that is  not only difficult to achieve by all the driver and OS shenanigans
but also makes everyone disappointed in the end
now I know why most devs just go for 30 max and leave it at that ๐Ÿค”

in other news a few new features were added that I believe I forgot to mention:

the game now checks if you did a save on the level and asks if you want to restore after defeat
(feature was suggested by FreeHawk)

of course not everyone found out about that you can save in ZortchTest so also there is a help page now:

hopefully it will clear a few things up
also as you see the default keys were changed so they are more common FPS controls
my default setup of course was combining Reload and Use - but this met with negative feedback
(it's still possible with setting both keys to the same key - probably I will be the only one playing this way)
also I preferred to use R to jump and F to crouch - the world was not ready for this either

there was also a bug with spidermines not giving clues about their whereabouts

for testing this I made their clues more subtle first - explosions above the ground

I found out their ground position was not reset properly after loading a save
and they were spawning the clues (little smoke effect) in the air

I'm also putting together maps for the demo
and cannot decide on which ones to use

so not much excitement..

until next time!


"Who knew making games is so boring?"
(1 edit) (+2)

a special kind of update

code wise I'm working on some optimisations for the particle engine
it seems if I build the mesh for it in a seperate thread I can shave off some time (1-2ms)
from the rendering  (depending on how much are of them need to be drawn of course)

so I found some early concept art (from about 3 years ago when the project started)
and I thought it would be a fun idea to compare them to the final results
my idea of concept art of course is to load up an old mspaint and just scribble around 
without further ado:

some of them have notes



an early version of the guards (just  outlines without painting)


in the end I couldn't do justice to the giant frog's concept


also some early screenshots showing a bit different hud:

the earliest hud - still very doomish
it looked ok but I felt it takes too much space and also the numbers were confusing

the hud a bit closer to the final one - minus the font - some of the models are already  near their final form


"Join us next time to see just how hard it is to draw a brainsucker anyway?"
(4 edits) (+2)

another look back at old concept art

now the original title for the game was "Zortch Maximum against The Brain Sucking Aliens"
and the inspiration was that brain sucking aliens is a sort of cliche in sci-fi
but funnily enough when you search for a movie that actually features this you hardly find any
this is kind of like the cliche of naming a dog 'Fido' - it's such a cliche that no dogs are named 'Fido' anymore

the thing was that I only had a title and some ideas for the plot
but only had some vague ideas on how the aliens would look like:
- I didn't want them to have legs and wanted some sort of lovecraftian abstract creature
- they of course had to be green
- no eyes - they have perception and senses just not as we know it
- and also they had to be intelligent and be able to talk to you somehow
the last part was kind of important - it was inspired by a fact I read about the original alien
in an early script the alien turns out to be able to mimic voices and make a log in Ripley's voice

and I just loved the idea so much: instead of a dumb  killing machine you are up against a smart killing machine
(one which runs by on a completely different idea of morals and logic - you won't talk yourself out of this one)
so not only they can overpower but outthink others as well - a creature that is really really dangerous

this somehow led to an idea of "Hostel meets Alien"
something about aliens that run a hotel to trap people
(so the game is a mish-mash of several ideas - some of them worked and some of them not so much)


anyway without further ado:

here is a selfie of a brainsucker -- so what led to this design?





some extra concepts like vehicles and bosses driving vehicles were dropped as they were beyond my capabilities to implement
there were plans for intro and cutscenes - but in the end it seemed better to leave things vague

I kind of forgot about the air cream joke -- maybe it's better that these were cut ๐Ÿค”

"Next up: concept art of Zortch herself and more bad mspaint comics!"
(5 edits) (+2)

and in this devlog we take a look at the protagonist herself
and her weird origins

in general I plan all my characters for potential sequels - and then end up never making a sequel
and I have so much fun planning that I always overshoot and only some of it gets in the game
usually end up very background lore heavy stuff .. where I am the only one familiar with the back-lore ๐Ÿ˜”

For the world itself there were a few important things:
- straight sci-fi  no twists, no metaphors  (no current events, trends or politics: true escapism)
- you are not saving the world or hostages - only yourself
- far from earth in space and time - but not that far:
   - humans are a nomadic species (escaped from earth a long ago - no contact with their homeworld)
   - space faring ended up with tougher humans:
     - almost immune to radiation
     - they are somewhat paleish with a slightly grayish skin
     - not competitive with aliens when it comes to invention: 
        - most of them are employed as laborers (blue collar)
- there are plenty of alien species - and only some of them humanoid

I also I like to mention I cannot draw the same character twice in the same way
I can't sign my name twice the same way either
my life is difficult ๐Ÿ˜”
but I digress


For the protagonist I wanted a somewhat generic hero - but with some twists:

- Zortch: generic mechanic girl
  - twist: she is an incompetent mechanic
  - she has talents and skill - just not in her field

  - country girl in the big city
  - polite and nice
  - yet incredibly destructive  ( not useful when you are supposed to fix things )
 
Some  traits are to explain away FPS game elements:
  - mechanic -> lot of pockets -> that is how the items and guns stored 

also I thought drawing hair like that would be easy to draw and model and came up with an explanation:
  - she doesn't like hair getting in her face -> but because her hands are covered in oil and she uses them to comb them back they end up in that weird triangular shape -> no shampoo in the world can take that stuff out
 


one of the reasons why I'm making a female protagonist is because I never made a game with one before (no finished ones at least) and also there is somewhat of a challenge element:
  - I heard that Mel Brooks was proud that with Get Smart he was the first one to make a TV series with an idiot in the leading role
and this was combined with the idea:
  - I read some interviews that the creators of Monkey Island felt that there couldn't be a 'Galbrush' the same jokes with a female lead wouldn't work
 in general there seem to be a trend of women getting portrayed as insanely competent in a world of buffoon oafish men

so in this case I thought of making a incompetent female: someone who is actually stupid and gets in trouble - but the twist is her other skills help her get out of it
and instead of a 'Galbrush' she is more of a female Roger Wilco (also she is nice to everyone but still only has a few friends - mostly non-human)

and another female portrayal I don't get is the 'Zero Suit Samus' -how they expect anyone to run in high-heels? - which is why I insist her on wearing these large boots (fun fact: funnily enough historically poor women would wear large boots and started wearing high-heels to look more like men - who wore them to make riding horses easier)
also originally I also wanted them to be rocket boots so you could use them for double jump - and would also explain how she has such strong legs for the ridiculously powerful kicks as they were huge heavy low-tech rockets - in the end this made planning levels too hard and now you just get an extra boost for kicking


and there are a few characters that directly inspired the design:
  - I really liked the design of the female lead in Cargo: Quest for Gravity
     which is where the idea of many pockets came from
     and the idea of having a character with insanely buggy pants filled with stuff
   who has these very large boots to kick stuff - which lead to another character that likes kicking:

  - I'm a fan of Duke3D and there was a question of how a female Duke would look like
  and in the end I found that I don't like Bombshell:     she gave me the impression of a typical abusive wine-mom
  so this lead to the idea: the heroine should be a young adult who is the opposite of this (someone who doesn't drink alcohol or smoke cigars etc. )

and some of the design choices were made during creating the 3D model:
  - I originally pictured Zortch with flat breasts - but she is so tomboyish you couldn't tell she is a gal
  - then agains she is nowhere as big as the female guards
  - in general it's tricky to model breasts that look average from far but not that big from close
  - of course the closer you get to things the bigger they seem ๐Ÿค”

and one more important nuance:


this little chart shows the 'true origin' of Zortch - I wonder if anyone will be able to figure it out? ๐Ÿค”

anyway, here is a concept art dump (proudly made in mspaint):

the original concept had you start with a BFG-ish weapon - you started with a rocket launcher instead of a pistol
as the lore went the nomadic humans would be harrased by giant space creatures
and  a simple 9mm just wouldn't cut it - so everyone had personal nuclear howitzers (an idea somewhat inspired by the Red Dwarf bazookoids)
it was a fun concept but ultimately didn't work in gameplay ( I wish I still had the prototype with it - it got lost along the way ๐Ÿ˜”

and of course making the 3D model was not easy
 I'm only good at making non-human models ๐Ÿ˜”
here is an early version:

and finally a separate one was used for the hud:

horrifying isn't it? - in the end I retouched the eyes in 2D

"It's  Amazing how much stuff ends up on the cutting room floor!"


next up: Leftovers

(1 edit) (+2)

once again I'm recovering from an illness
still I can't help myself but work on the game
(usually the moment I get the strength to type on a keyboard  all hell breaks loose)

did some optimisations on the particles - I was too ambitious: one linetest per particle still could add up to thousands of linetests per frame if there are many of them
I try to replace all of these expensive checks with tricks (e.g. caching the ground Y coordinate for blood drops etc.)

also there was a weird rendering artifact with the lightmaps
I originally used a polygon offset for them which caused lines between shapes
the fix was weird: I'm not sure why but writing depth with 'less' or 'less or equal' seem to result in different depth .. weird

getting really close to release


anyway without further ado, some remaining concept art:



and some plans for the manual with character bios:


and believe it or not this was the first room ever added to the game:

(the screenshot itself was made in a later version though with the new hud)


"This project sure has it's priorities straight."
(+2)


I uploaded the demo, you can find it here: https://mutantleg.itch.io/zortchtest (ZortchEaster.zip)

this is just the "easter demo"  -  there is nothing easter themed about it .. just released near easter ๐Ÿ˜”
(the full demo will be mostly identical but planned to  also contain the editor and a help file)

"Enjoy!"

(+1)

mini update

believe it or not the game is still not finished .. still finding some last minute bugs
but we are at 99.8% somewhere

there is now a letterboxed mode - somewhat improves the fov in fullscreen



and I removed the aspect limit for windowed mode  - you can combine it with the letterboxed to get even more fov


"This amount of horizontal fov should be enough for everyone!"

(+3)

It's out! Thank you for following this devlog! (stay tuned for the postmortem)
(there is a free demo -- but it's identical to the easter demo)


https://mutantleg.itch.io/zortch

(+2)

a small update: I found some of the early prototypes that I thought were lost

they got some of the features that I talked about here (that were cut)

here is a little video of them:


and you can try them out if you want (and if they work on your system)
https://mutantleg.itch.io/lamezortch