and so it goes
and so it goes,
but where it's going no one knows ...
(Nick Lowe, 1976)
That said, this "one post per week" is already going on my balls. Anyway, it's 23:31h on Sunday and I'm hammering out this week's post, well knowing that there isn't much to write about.
The week started with going back to "real life" and finishing off a client website, which is using a lot of the oh-so-new (as far as marking people know) web toys (css3 transforms, canvas) - oh boy did I have fun.
[Add a rant about the shortcomings of css, js and html here (or look me up on g+)]
... and as client projects go, some of the copy is still missing, and some last call changes delayed the whole project quite a bit - always a good thing if you want to get it live asap.
Let's get on with a more productive post about the Hellstrom Project. I haven't been coding much for the last 3 weeks, but I managed to export the last 3d model of the first block and import it into Unity. A quick "walk through" showed that the map is a bit - shall we say - crowded and things were a good deal to close together.
Sketch of the original layout.
... and so I decided to scale things up a bit. The first thing that got bigger was the waterfall, while the "old" one was about 4m high, the new one should be about twice as high (and wide), after I made that bigger the whole layout of the map had to be changed (which was the plan anyway), but I didn't want to just scale things up by 2.
Now that's what I'm talking about ...
In the end I thought: "Oh for fuck's sake" and sat down for a quick sketch of the new waterfall area of the map. Lot's of rocks to model, but funnily enough I'm looking forward to it.
Hopefully I'll have that modelled by next week (and I have something to post).
-- Oliver (nGFX)
... because if I were, I could "Create a deliciously irresistible blog post title".
Oh and no, we won't let you do a guest post on the GYW blog that could "benefit" us both.
The real title of this week's post should have been "Deciding how textures should look like". Client work took over again this week so I just did small thing during the daily 30 minutes of development time. One thing was to setup the machine puzzle in Unity and importing "Danielle" (one of the Characters you'll be able to play) from the old version of the Hellstrom Project. I juts need to make the animations work with the new controls (although I need to rebuilt the character anyway in order to animate the walk cycle using the standard 7 keys one I found in an old animation book - from the early days of animated films).
The rest of the time I spent evaluating how I want my textures to look like, as this also defines how I do the rest of the environment.
current unmapped version
When I started modelling I wanted to use no textures at all and just create lightmaps and solid coloured objects not unlike the unmapped version above. As much as I like the look, it also makes things a bit more complicated. Objects like rocks and cave walls need to be modelled to make up for the missing textures and honestly the flat walls look a bit dull.
using image based textures
I admit the example for image based mapping doesn't show my point as well as I thought when I made it, but as you can see there's a lot of detail behind the machine. You also may notice that it kinda looks flat, so it could do with normal mapping and/or more geometry. Even though I could build the stonewall with detailed geometry and then render the normals maps, adding details with extra geometry if needed, this will add a lot more work to the initial alpha version. No to mention that it doesn't look like I imagined it.
Painted textures and a few extra polys for details
(the 3 "blocks" right of the arches)
"Painted" isn't quite right (yet) but it shows the direction I want to head for the textures. The few extra polygons needed for details won't hurt (and I guess I can still optimize a few unseen ones away later)
And with this I'll end this post and try to come up with something to post next week.
After last weeks post I started working on the real version of the "cave" showcased in the last week. Basically it is the "puzzle" part of the first block for the game. The idea is to compose a set of independent blocks that are connected by doors, portals or "glitches" (I'll give an explanation for that in a later post).
Let's talk about controls first (be patient, I'll come to the gears soon enough).
My main method of control for this game will be twin-stick gamepad (with a WASD/mouse fall back - maybe). I played with a few types and settled whit what I call "locked view" 3rd person controls. My first idea was to go the classic twin stick route and have one stick for movement and one to set the aim direction. I admit I don't like that very much, so I started looking for another method. The method I use now uses one stick for moving AND aiming (read you aim into the direction you move) and the second stick is used for moving the camera (classic 3rd person I would say). I added one addition to it, though.
In fights you can "lock" the view aim direction with a button press (and release it with a second press) this way you can move towards a group of enemies (thus aiming at them), lock the aim and retreat backwards still aiming at the enemies. When moving the camera you keep aiming relative to the camera, so you'll be able to shoot enemies nearby without having to heavily move around.
Puh. That's a lot of text, let's get to the gears.
This machine is a part of the first puzzle.
You'll notice the gears in this image, and the eat up polygons. Although I cheated and removed all invisible faces of the gears in the background, they still make up a good part of the polygon count for this block (10k so far, but there's room for optimisation), but then I liked the mechanic look of them. Seeing them in motion when solving the puzzle was reward enough to keep them the way they are now. The game isn't purely about killing enemies, so I wanted to add puzzles to the blocks that unlock new locations (rooms, blocks, mazes). This isn't a great puzzle, but it's a start and as the game grows and I'll add more blocks with more puzzles adding a hint of adventure to the game.
This bridge leads to a different part of the block.
I doubt this area will stay like it is right now, as I had the idea of adding a BIG spiral staircase down to a big room with lots of ... things.
The "cave", not quite looking like the one I showed last post.
This area is still not finished, I'm going to add at least one bigger wooden structure to the right "island" (which you can't reach without solving the puzzle) and a portal.
Oh someone told me that the images are a tad small, so I'll have a g+ post with bigger versions ready if you follow this link: bigger version images.
And with this ... see you all next week.
I think I mentioned last week that I'm going to spend a few days doing a dummy level for The Hellstrom Project. I started by doing a few basic tiles I wanted to use, which didn't look that bad (in a cheap kind of way):
The finished set of dummy pieces.
Basically some floor tiles, walls, a simple door and 2 traps (the red things). This took about an hour to do and afterwards I imported them into unity, eager to start "messing around with a nice level" - well in theory anyway.
The first thing is that unity isn't very good at this kind of level building (or it's just me) but the lack of usable grids and quick edit possibilities (you can do it with some 3rd party extensions) quickly showed the limits for this kind of editing.
So I fired up my 3D Software and thought: "Well just use the tiles and export the whole level in one go then" - well in theory anyway.
I ended up with something that looked ok'ish, but at the same time showed the destinctive grid structure you get when you start using (and limiting yourself to) a limited set of items. You might argue that this works with LEGO, but the keyword is "limited" here.
I smell grids.
It does make for a distinctive art style, but not quite what I wanted. In the end I started from scratch and ended here:
Not even remotely the current state or finished (and not optimized at all).
Which I find a lot more appealing, even without textures.
And with this, I think I close this week's post and see you all next week.
Another week passed already? Damn.
I'm not sure if I mentioned it, but I'm having two weeks off. No coding except what I want to, I even could have a complete lazy day. During the last week I've been digging out an old game that went to oblivion - because paid work took over all the free time and there was a distinctive lack of "vision".
Both problems have been solved for the time being. MTR, the racing game is partly client work so I decided to let it rest for two weeks.
Is back from the dead.
On Monday my first action was to zip away all the old files (except the 3d models already made) and start a new project. I did this because one of the main features of the game is gone: randomly created dungeons (not entirely, but not as sole method of creating the environment).
A rather ... unspectacular first screenshot.
As the game will be gamepad controlled (but I'm also working on a wasd/mouse version) I spent some time making the controls feel right. Next things to work on are traps, doors (keys), terminals and connectors (which will be used to connect pre-built blocks) - all as dummy objects to see if it works like planed.
There are still some decisions to make, mainly player progression and inventory, but I need something to post next week.
Screenie post I fear ...
Current Hellstrom built in Chrome with the debug pathfinder being a little show-off.
What's new? Just a lot of code atm. There's a second pathfinder in it now (after I discovered that the one I wrote for flash a good while (ok, years) ago didn't quite work as expected.
I really like the old one as it only needed a boolean map to work, though with the dynamic dungeons in hellstrom that proved to be a bit tricky anyway as I had to render my cell structure used for the maps into the boolean map:
! ! # #
! D >> #
! ! # #
While the cell stores just if there is a wall, say for north, the boolean map needed to have a wall made of "false". (see : here (scroll down a bit) for some more detailed explanation about the structure I use).
Anyway the new pathfinder (codename: Magellan :) ) uses linked nodes instead of a boolean map, this is not only incredibly usefull (as it can adapt any "scale"), it also works in 3d / multiple levels and can use "one way nodes". The code isn't as clean as I wanted it to be, but it's working and abstract enough to be easy to use...
_Magellan = myDungeonCreator.createMagellanMap(_Dungeon, new Magellan(), false, false);
// dungeon, pathfinder ref, use locked doors, move diagonal
it uses 3d Points as internal ref system so to find a path you's simply:
string Result = _Magellan.FindPath(_Dungeon.Rooms[iStart].offset, _Dungeon.Rooms[iEnd].offset);
With Result being some handy string to be parsed, like "noLink", "pathFound". The found path is internally stored as array of index ponters to the nodes, so we need to "parse" it to be used:
PointInt3D path = _Magellan.path3D;
enough code now.
If I feel luck I'm going to post it, though first I need to get alive through the much dreaded holidays (way too much food and family - and way to much drinking in order to forget the two) ...
Picture post today. Two quick renderings of two of the walls for the dungeon theme in "The hellstrom Project".
Basic corridor tile walls.
Walls and stairs of one of the rooms.
Back to code now. nGFX
... just so snowed under client work that there's hardly room to breathe (or to sleep while we're at it).
So just to show that this place isn't a deserted place on the web here's a tiny text only post.
Oh. And "The Hellstrom Project" is on twitter now (and whenever there is a hint of free time I'm working at it) if you like you can follow it here: http://twitter.com/HellstromGame.
And now, more amends ...
Just another picture post...
Screengrab of the current test version of The Hellstrom Project showing a few of the corridor tiles I've set up.
The mappings aren't final, nor the lights (will render the lightmaps later) - and it's only one of the visual styles that will be used in the game (and dungeon) - but that's another post (I don't want to give away the story yet).
Right now you can only run around the generated dungeon, though new things are added daily when updating placeholders with new models and refine/add methods.
Small picture post this time.
This is "Danielle" (or what she looks like atm) for the RPG'ish game I'm working on in Unity. The project isn't quite showable atm, but I promise to upload something when there is more to see (like having Danielle walking around).
She'll def get a visual overhaul for the game (and this model will be used as "Generic Femal Player") as the "real" Danielle will get a lot more "pirate" to her outfit. (The other two playable characters will be quite different, but more on that ... later)
She's modeled from a foto reference with a good set of idealizing the model and she'll need some optimizing as the whole model is using 3.6k triangles atm, though she can be reduced safely to about 2k polys.
So long and back to Unity, nGFX