Hi you all, it's the beginning of a new year! It's also almost two months since I posted the announcement and first blog post about the game side project, and I've made a lot of progress since, ecpecially over the holidays when I had a whole week to basically just work on the game. I decided that I've learned enough to start on an actual prototype now, so I discarded everything I've coded so far and started completely fresh to make sure I can build up a good, cohesive base.
So back then I was able to show you guys some footage of moving around in a scene, being able to interact with stuff and a beginning of a dialogue/story scene system. You'd think I'll have something phenomenal to show by now, eh? Oh yes, look at the glory:
A start menu! With an exit button! Because the first time I tested the "game" as an actual program in fullscreen I quickly realized that I had no way to get out again except by coldly ctr-alt-del:ing it to death. An exit button suddenly became a top priority.
The actual game! You can click on menu buttons to open the in game menu, or get back to the start menu by clicking the poorly labelled "main menu " button. That is the game.
Character stats! I have a bachelor's degree in graphic design, as you can see.
Aaaand an inventory! That surprisingly is funtional and works as intended. I spent so many days on that thing, that even if it looks like sin it is currently the most beautiful thing to me. (And then there's a map screen that's just empty. There is no map, sorry.)
So if looking at those made you want to cry, please don't despair! I do actually have some sort of plan for the visuals. Before I left for christmas holidays I made myself a little photoshop mockup of the menu graphics style that I want. There's unfinished and sketchy parts there too, but it does show the general feel that'll eventually be implemented.
And by the way, even thought the images above do make it look like the progress has gone barely anywhere this last month, there's actually a ton of things that are working well under the hood. They just don't have proper visuals yet, and the only way to see things happening is to log them out from the code like this (yes, my spelling is atrocious):
There's character leveling, taking and healing hp, "dying" and reviving, inventory management, and actually using items from an inventory on characters.
And clicking on things! I will never again take clicking on things for granted. The cursor has always been a magical thing that just knows what is below it and does things when you click on anything. But nope. The magic is gone. I could write a whole blog post on the progress of getting the humble feature of clicking on things to work, because it was an interesting ordeal. Maybe I'll do that some other time if I don't have much to write about some week, for now I'll settle for this quick rundown of conundrums that had to be solved:
Where is the cursor? Was a mouse button being clicked, or pressed, or pressed while moving? Who knows! Not the game, that's for sure. And once we figure out where the cursor is at any given time, do we know what game objects are below it? Of course we don't! Then after we somehow, through magic called raycasting, get to a point where the "cursor" knows that it is currently on top of: a text object, an image object, some container object that is the menu, and some background image object, how does it know which is a thing that can be clicked or hovered upon for some effect? And then.. does a game object you click on know that it was clicked? Of course it doesn't! Nothing knows anything about anything, arggh!
But eventually, after many steps into unknown territory, I had made a nice little script called a "mouse controller" that keeps track on what the mouse/cursor is doing, and a companion script called an "input reactor" that I attach to any game abject that, well, needs to react to input. And it's a really flexible little thing. It works just as well for, say, menu items that need to open something on click, as for some image that might just show a tooltip when you hover over it but does nothing when clicked on. So yeah, it was a journey. Don't take cursor magic for granted, people. o_o
That's it for this update! Next time it'll probably be art stuff again, the graphic designer in me is crying a bit when I look at what I've produced. I've already started on making some necessary movement animations for the prototype, here's 8-frame running Sigrun for you (took a whole weekend to make that, animation is a curious beast that'll take some time to get into it seems):