Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411196 Posts in 69314 Topics- by 58380 Members - Latest Member: feakk

March 19, 2024, 02:50:42 AM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityDevLogsCave Confectioner - farming / cooking
Pages: [1]
Print
Author Topic: Cave Confectioner - farming / cooking  (Read 2317 times)
fluffrabbit
Guest
« on: May 18, 2019, 12:38:25 PM »








Cave Confectioner is a back-to-the-land farming and cooking game in development for Windows/Mac/Linux, like Stardew Valley meets The Flinstones. Get to know the savages and sell them every sweet confection you can contrive, and be aware of their individual predilections, like lactose intolerance and love of sugar.

So far it features:

* 2.5D perspective distortion
* Bloom
* Dynamic entity collisions
* A* pathfinding
* Dialogue trees
* Fully serializable maps based on the Tiled JSON format

20% complete. TODO:

* Farming :: 40%
* Confectioning :: 0%
* AI :: 10%
* Set up promotional site :: 50%
* Public demo :: 0%
« Last Edit: September 07, 2019, 11:20:52 PM by fluffrabbit » Logged
fluffrabbit
Guest
« Reply #1 on: May 25, 2019, 04:31:56 PM »

The game will have dating sim elements. This is the dialogue system.

Fun fact: String bikinis were invented before pottery.

Logged
fluffrabbit
Guest
« Reply #2 on: June 01, 2019, 12:58:38 PM »

You can now select areas and objects to move to and interact with. Left-clicking interacts. Holding the right mouse button moves to the target with A*.

Also added a bloom shader and spent the better part of a day tweaking it.



Next is the crafting system, and I'd also like to try machine learning for the NPCs.
« Last Edit: June 02, 2019, 07:22:54 AM by fluffrabbit » Logged
fluffrabbit
Guest
« Reply #3 on: June 08, 2019, 07:20:28 PM »

The Genetic Algorithm

The Wobbledogs guy did an excellent writeup on it here. I spent the past week creating a (hopefully) robust genetic algorithm library since Cave Confectioner will probably be using it a lot. It's STB-style, complies with clang-tidy, supports arbitrary structs via templates, and is well documented. Internal software for now.

That means nothing too visual this Saturday, but here's a screenshot of the start of the inventory.

Logged
fluffrabbit
Guest
« Reply #4 on: June 15, 2019, 08:12:46 AM »

Fire -- an essential ingredient in any subterranean recipe.



Neuroevolution

I have obviously been spending a great deal of time on clever things. The genetic algorithm took a week, and neural networks have taken another week. What follows is an infodump for the technically inclined.

My evolution code is currently POD because of the way that C++ handles structs. That means nothing can grow in complexity over successive generations.

When I added neural networks to the mix (based on the excellent tutorial here), I was suddenly hit with the problem of the POD approach being way too limiting and inefficient. It took 6 seconds to train 1000 generations to make big numbers smaller, which seemed like a long time to me.

I also learned a lot about neural network topology. For instance, a 3-layer feedforward net of size <5,10,4> is more effective overall than a 4-layer feedforward net of size <5,5,5,4>. For some reason.

There are alternative approaches. NEAT is a neural network that grows over generations. Novelty search is a novel approach to the NEAT optimization function. Ken Stanley has a lot of insight on this. If I weren't making a game I'd probably spend a lot more time on neural networks.

One way of looking at it is that entities in Cave Confectioner are not trying to outsmart the player. The challenge is meant to arise from the inherent difficulties in trying to make cakes and other sweet foods from extremely constrained resources.
Logged
fluffrabbit
Guest
« Reply #5 on: June 23, 2019, 06:29:31 AM »

STATE-OF-THE-ART WOLF SIMULATION WITH DEEP LEARNING

Logged
fluffrabbit
Guest
« Reply #6 on: June 29, 2019, 09:02:54 AM »

After conversing with some highly intelligent people in my circles, I have decided to prioritize the best experience for the users. From here on out, the focus will be on polishing gameplay features and maximizing fun, player choice, and awesome gameplay.

Check out the new achievement system!

Logged
fluffrabbit
Guest
« Reply #7 on: July 06, 2019, 11:46:16 AM »



All entities now have inventories. And there are grains.
Logged
fluffrabbit
Guest
« Reply #8 on: July 13, 2019, 03:36:15 AM »

Plant growth

Still in its infancy. I know enough about genetic algorithms to add individual traits and mutations, it's just a matter of actually doing the work. Shown below is a generic grain in the wild emmer family. Before agriculture there weren't all the varieties we have today. Some limited form of domestication should be possible in-engine, however.



Obviously the plants don't grow Narnia-fast; this is a time lapse.
« Last Edit: July 13, 2019, 03:41:32 AM by fluffrabbit » Logged
fluffrabbit
Guest
« Reply #9 on: July 20, 2019, 10:52:33 PM »

Website wackiness

I had a lot going on this week, so rather than trying to make visual progress on the game, I spent a couple long nights of spilled coffee setting up the website.

Digital Ocean is awesome. I have not had any problems with them so far. That said, I will happily switch to any other service if they ever raise the price of their base VPS tier above $5/month. I can't really afford a VPS, but this is close enough to the price of a basic web host to be affordable.

DreamHost is less awesome. They're less of a pain-in-the-ass than GoDaddy. They are not geared towards developers, but they are functional, even though you probably want to interact with their website as little as possible.

After installing Apache on the server, I decided it would be nice to run daemons as a non-root user which can modify files on the website. This is critical for mixing in Git, custom game servers, and other services. This required moving things around and messing with configuration, as documented on two pages.

I plan on switching to nginx, mongoose, node.js, Python, or another web server running in userland in the future, but Apache works for now and comes with plenty of goodies to mess around with, like PHP. If you want to do what I did, follow the instructions below. Hopefully no potential customers or employers are reading this. Wink

Install PHP for Apache, restart the server, turn on the PHP module if applicable, copy all of your PHP files into their proper place in your web root, and finally turn off the security like so:

Code:
chmod -R a+rwx /path/to/your/webroot

Note: This is a bad idea for serious business, but very convenient if the Windows security philosophy is good enough for you.
« Last Edit: July 21, 2019, 07:06:02 AM by fluffrabbit » Logged
fluffrabbit
Guest
« Reply #10 on: July 27, 2019, 11:12:01 AM »

Still working out some inventory bugs, but you can now do part of what the thread title says you can do.



I have also been exploring alternative monetization methods, which is surprisingly time-consuming.
Logged
fluffrabbit
Guest
« Reply #11 on: September 07, 2019, 11:00:25 PM »

Harvest



The engine is more likely to run into access violations if the plants are growing at turbo speed, and there is no easy way around that as std::vector is doing the heavy lifting. JavaScript arrays are bounds checked, C++ vectors are not. I could make a custom solution in C with a memory block, but this is a C++ engine with a lot of dynamic allocation.

Therefore, the solution is to keep the error-prone dynamic allocations and deallocations to a minimum. In the case of plants, that means growing the bulk of them ahead of time. My engine can fully serialize maps in the Tiled JSON format, including plants, so saving a bunch of starting foliage is trivial. The world comes populated with the stuff.
« Last Edit: September 07, 2019, 11:22:23 PM by fluffrabbit » Logged
fluffrabbit
Guest
« Reply #12 on: October 01, 2019, 03:06:41 AM »

Recently finished a graphical overhaul. I was told the game needed it.



Still working on connecting the regions together.
Logged
fluffrabbit
Guest
« Reply #13 on: October 05, 2019, 05:47:29 AM »

Improved stability and performance. Now the game doesn't crash as a result of questionable memory management. Nothing visual yet. Brainstorming how to transition between areas. Probably going to be fade up/fade out.
Logged
fluffrabbit
Guest
« Reply #14 on: October 12, 2019, 12:10:30 PM »



Here is one of the transitions. The idea is that it fades to white when exiting a cave and fades to black when entering a cave. Not too exciting, but a lot of my time has been occupied with stability and audio, things which don't translate well to GIFs.
Logged
fluffrabbit
Guest
« Reply #15 on: October 13, 2019, 04:36:38 PM »

I have compiled a short list of somewhat similar games which I will use in marketing efforts. Only posting this here for my own reference, at the risk of appearing a cold and calculating marketing person.

Littlewood (June 2019) (wishlisted) - 4 months ago
Farm Together (3D, co-op) (October 2018) - 12 months ago
Overcooked 2 (3D) (August 2018)
Verdant Skies (February 2018) (wishlisted)
Gleaner Heights (February 2018)
Harvest Moon: Light of Hope (3D) (2017)
Harvest Life (3D) (2017)
Stardew Valley (2016) (wishlisted)
Logged
Alce
Level 0
***


Twitter: @Alce_X


View Profile WWW
« Reply #16 on: October 14, 2019, 07:54:15 AM »

Love the setting, the idea sounds like a lot of fun. Looking forward to when we can see cooking in action.
Logged

Aspiring chilean game dev. Likes artsy/experimental stuff.
fluffrabbit
Guest
« Reply #17 on: October 14, 2019, 12:20:41 PM »

Love the setting, the idea sounds like a lot of fun. Looking forward to when we can see cooking in action.

Thanks! Farming and cooking games do a lot better than just cavemen, like night and day. I regret putting off this core feature for so long. It will be done!  Hand Thumbs Up Right Hand Thumbs Up Right Hand Thumbs Up Right
Logged
Pages: [1]
Print
Jump to:  

Theme orange-lt created by panic