Project One Day - Update #3

posted in kseh's blog for project One Day
Published October 18, 2018
Advertisement

I've been focused on getting assorted bits of programmer art furniture added into the house. And in doing so, finding little quirks and work around (mostly related to collision stuff) to try to get things to work and look like I want it to. The way I've gone about my collision detection stuff, I'm currently limited in size of my sprites. So I've been piecing parts of sprites together to try and make larger furniture items and it's a pain. I'll probably be addressing this in the next few months.

I'm generally happy with my programmer art but getting perspective and scale consistent takes some work. I decided that the walls that I had were too short and just threw off the way that other furniture looked. So I made them a bit taller which then meant figuring out what to do about seeing behind those walls. I went with making wall segments transparent as the player moved north of them. I think it works ok though I'm not sure about vertical wall segments and joints. I think I can refine that later, if I like.

I spent a bunch of time reorganizing how I have data files for initial games and player save games. Mostly separating objects that I was previously saving into one large file into multiple files. Theory being that way I wouldn't have to place every single actor back onto the level again just because I found a problem with one somewhere. Data files now can be divided by categories like Plants, tables, beds, etc.

The addition I'm most happiest with though is some navigation logic for getting NPCs from one place to another. One thing that I wanted to have for the first scene was for the cat to follow the player around everywhere until she is fed. And of course, if the player moves fast enough around corners, the cat can get stuck. I ended up adding a Region ID field for each tile and, with the in game editor, I can paint that ID to the tiles that make up the rooms. So the Kitchen is ID 1, Living Room 2, hallway is 3 & 4, and so on. I then built functionality to parse through a file that has a bit of logic such that for the region an actor is in and the region you're planning on going to, add two destination tiles for that actor to the current path. One destination on the edge of the current region and the next tile on the edge of the destination (or neighboring) region. I think it's still possible for the cat to get stuck places if the player is determined, but it is way better. (Video 1 shows the cat following the player into various rooms, always crossing rooms where the appropriate door way should be.)

With the main navigation logic in place, I realized that I can define a set of Points of Interest in the level and have characters travel to that destination (instead of just the player's current location) as part of a path following script and tie that to the navigation logic where the path is written as a set of textual points of interest rather than tile co-ordinates. This way I can, for example, define in a data file the tile to stand on to be next to a TV. Then when I add the string "TV" to the list of path destinations, the character just goes to that spot. Thoughts of dynamically generated houses with NPCs able to follow a routine in the house fill my mind. But that's for another project. (Video 2 shows Wife character travel to kitchen counter, table with dvd's, tv, spot south of table, and lastly to couch.)

There's still some work needed for ideal NPC movement. I don't have anything for collision avoidance or steering behavior and I think those would go a long way to reducing the potential for walking into a table and getting stuck. But for a game like this where the NPCs movements and destinations are going to be known, I don't think it's a concern at this time.

I still would very much like to get this project completed before the end of next January but I'm thinking I might take a break from it for awhile to work on the Frogger challenge. It doesn't feel like some feature or element is particularly pressing or hanging over me right now so it feels like a good time to try one of these challenges.

1 likes 0 comments

Comments

Awoken

looks good.  Does the screen below the character always display transparent walls or does the transparency only travel so far down?

October 19, 2018 10:02 PM
kseh

Yeah, all walls below the player's position stay transparent until the player is back on the other side of them. So walls on the southern most part of the house will always remain transparent since you won't be able to get to the other side (I probably don't need those walls there at all). It's a quick fix to the problem of seeing behind the walls that does the basic job of what I need. But I would not recommend setting up walls like this for a 2d game. For all the trouble they've given me, a more traditional tile based approach seems like a simpler option.

October 19, 2018 10:14 PM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement