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:
- 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
- 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
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
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:
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)
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?)
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)
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)
- 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:
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
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:
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!
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)
- 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
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!
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
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
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