It begins.


I'm a couple days late to the jam so I don't have a lot of time to work with in the first place. I decided to poll the Community of the jam to see if there's any pixel artists who would like to collaborate with me on this with examples and so far a day later it's received no views that weren't my own. 

I guess I'll be grabbing asset packs then. 

So, what is "Chrono Flora" anyways? 

In short, I'm envisioning a "Legend of Zelda for the SNES" or "Stardew Valley" kind of semi-low-rez vibe and perspective.  No combat. 
The basic idea that I have in my head, as in with the spirit of  "ANYTHING to do with the Spring Season” and the additional theme of "Out Of Time" and resisting the urge to do anything with Back to the Future... here's the high level idea:  adventure game where the player must seek, find, exhume, and collect specific plants around the island to then re-plant into a randomly required sequence in a garden on the island to fulfill some kind of need to prevent {tragic event here}, but every movement and action taken shifts the timer forward. If the time reaches a certain threshold, and if the plants are not placed accordingly, the player loses. 

Above a lot of things, I hope this is a game my daughters would like to play a bit. They liked my flappy bird, hopefully this original piece of work entices them too. 

What are the technical details of the gameplay?

To make this as simple on myself as possible, we're going grid base gameplay baby.  I need a small collection of SNES Zelda like "plants" and "flora", a playable character, some wooden signs, and a basic "grassy island" tileset like grass, dirt, water, cliff, and edges for each scenario (the edges will be reserved for the polish phase if there is one, for now I'm just going to worry about populating the basic skeleton of a tilemap). I'm several days late to start, I don't have much time to lollygag.  I'll need the player to walk in all four directions, lift an item from all four directions, im debating whether to do this Mario 2 style (to which I'd need walking in all four directions with arms lifted), or just have an icon float above the players head representing the currently carried plant. The player will then need to be able to drop from all four directions (reverse frames for picking up just to be cheap about it).    I'll need to randomly generate a required planting arrangement, these can either be glyphs based on pictures, or arranged simple shapes, or literally a grid of randomly required plants interlaced with some empty cells. I don't know I haven't thought of that part yet. 

The player will need to first inspect the needed arrangement, and then run around the island looking for what they need, while worrying about "time points" ala ET for the Atari essentially. 

Exciting right? 

As for what engine I'll be using for this project, I'm turning to my new best friend LibGDX and Java. Which means yes I'm writing everything from scratch. 

What's the progress so far?

as of this writing, having nailed down at least a high level concept and sourced a few asset packs, I started the programming today.  The best part about Java is that, while the language can be esoteric at times, I've genuinely found it to largely want to get out of my way and let me get some work done. I don't have to worry about so much boilerplate nonsense, I can just use Gdx's Texture and Sprite classes in my arbitrary normal plain java class and it works exactly as expected, no need to worry about cyclic dependencies or long winded borrow checkers.  I can poll for Gdx's input right from that plain java class too because the library smartly stores the input state as a static set of values too.  

It's been wonderful to just go "Ok but what if I just- I mean, can I do it this way? ...wait what? Holy crap it works! THIS CHANGES EVERYTHING" 

So I'm working on the tilemapper right now. I've decided to bake in the maps general bones (the island geometry wont randomize) and wrote it as a gigantic list of integers. Each integer represents a tile id. We're going with a nice 32x32 sized map which should give plenty of room to move around and explore in. I may bump that out to 64x32 but we'll see.   Each tile id in the map correlates to a tileset dictionary which represents a specific Tile class.  The Tile class contains your basic x,y coordinates, a Sprite reference, a layer type (that represents draw order and collision style). So while I may be instancing 400 or so "TileWater" classes that base off of Tile, the actual sprite data will be a shared singular resource. 

This works because of my AssetRegistry class, which is the singular location to get a sprite, but in doing so it's checking a sprites dictionary first based on path, and if that path doesn't exist in the dictionary, loads the Texture data and feeds it into a Gdx Sprite class instance. I store that instane in the dictionary keyed against it's path on the filesystem.   So whenever anything needs to get that sprite data, they poll from the AssetRegistry.  This allows the data to only need to be loaded into memory onceAnd then I can simply start a batch render for each layer of the tiles, assign the same sprite data over and over, end the batch, and bam we got ourselves a pretty optimized map renderer. 

I've wrapped up the asset registry, and started writing the tile classes.  There's still a ton of work left to do yet. 

Get Chrono Flora

Leave a comment

Log in with itch.io to leave a comment.