7DRL entry: Slumber [devlog]

Make games! Discuss those games here.

Moderators: Bob the Hamster, marionline, SDHawk

Post Reply
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

7DRL entry: Slumber [devlog]

Post by TMC »

It's that time of year again when some of us make threats to enter the 7DRL challenge. But with a difference this year!

(Crossposted to itch.io here)

@Seilburg and I are beginning our 7DRL entry, a (slightly) esoteric base-building survival roguelike with working title "Slumber" and this is its announcement and devlog.

We are creating it using Godot and will be making the game almost from scratch, reusing very few existing resources or scripts. We did spend a few weeks on the design doc though. I'm using this as an excuse to learn Godot - I don't know what I'm doing yet!

Officially running from 6am UTC 1/3/20 - 6am UTC 8/3/20
Last edited by TMC on Sun Mar 01, 2020 7:23 am, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

02/03/2020

See also Seilburg's devlog entry: Day 1 - Hello Cave!

--------

Day 1 - possible cyclic resource inclusion (Crossposted)

The first day is gone already (though I couldn't post on the 24 hour mark, dinner intervened)

What I did:
  • - Reading lots of Godot tutorials and documentation and poking through the file formats. Got to know how it works under the hood... when you've got a gnarly git conflict to resolve at the 167th hour
    - Lots of experimenting with Godot. Wow does it have a lot of settings and crazy, sometimes illogical, UI
    - Information overload
    - Discovered Godot bugs
    - Submitted bug report/patch for emacs-gdscript-mode
    - Drafted a measly two sprites
    - Picked out some free fonts
    - Accomplishments too minor to mention
    - Went for a walk
What I didn't do:
  • - Anything in the Plan
    - Any serious programming in GDScript
Thankfully I've got a teammate to do all the real work!

Expect to make some serious progress in day 2, including a skeleton of the gameplay.

Image

--------

My goal in learning Godot is largely to get ideas for how to extend the OHRRPGCE. It's got a lot of features that I want too. Unexpectedly, I'm also gaining a better appreciation of the merits of the OHRRPGCE and what it should aim to be, and how we can implement some of those features so they're easier to use than in Godot. Godot has no qualms about piling on complex UI. Very good tutorials though.
Last edited by TMC on Tue Mar 03, 2020 10:28 am, edited 2 times in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

03/03/2020

See also Seilburg's devlog entry: Day 2 - Attention scene hygiene

-------

Day 2 - Progressing at 0.5 frames per second (Crossposted)

That's two days down. Starting to feel worried at how little progress I'm making. Though I had a lot less time available than yesterday.
  • -Drew a couple more sprites and started on some tiles
    -Started an argument about changing the perspective for the tiles (I was in the wrong), and other debates about design doc designs
    -Fixed a couple bugs
    -Learning more about Godot. The workflow and UI is becoming clearer.
    -Wasted too much time on various rabbit holes like struggling to compile tools that don't even work. I've got some bugs to file
    -Transferred to a different computer (via multiple buses) only to find Godot would only run at about 0.5 FPS on it. Turns out I need to place the window on a monitor plugged directly into the graphics card, not into the motherboard. Spent time moving around/adding monitors.
    -Almost got more done on the OHRRPGCE than on the game
    -Picked mushrooms
So I didn't even attempt anything I'd hoped to do today. My new top priority is to do graphics, because we need the tiles for mapgen, and we also need to know what the hell we're making. This isn't a dungeon crawler. Once we've drawn it, we'll have a better clue what it is. Seilburg is also working on graphics, and using procedural graphics too, so I'm sure the two of us can get everything done fast.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

04/03/2020

See also Seilburg's devlog entry: Day 3 - Seil 1.MS2020

-------

Day 3 - Rocks, pits and soil (Crossposted)

Today was more productive than yesterday but far short of ambitions. And these devlog entries keep getting later.

-Drew a bunch of tiles. But skipped doing normal maps for them
-Submitted bug reports and fixes for Laigter
-Learnt about Godot tilemaps and tilesets. I hear people use Tiled for better autotiling, but I want to use autotiling during mapgen. But it's not flexible enough (that's a rarity!)
-Setting collision and occlusion polygons for tilesets is a timesink :(
-git conflicts because we both changed the same things
-Discovered the joys of merging Godot data text files by hand. Managed it without breaking anything. And then realised I merged a 4 hour old branch. Start again.
-git conflicts because Godot keeps unnecessarily changing the id numbers of stuff >:(
-I give up on itch.io's bullet-pointed lists. They are so broken

Really wasting a lot of time clicking buttons instead of writing code, dealing with conflicts instead of progressing, reorganising files instead of logic, defining tileset metadata instead of drawing them.

Day 4 plan: avoid everything but code (and my trust GrafX2)

-------


I'm continually amused by the design decisions made by the Godot devs. There's quite a few features I've come across where I've tried to design a similar feature for the OHR (most of these are still just plans). The Godot devs always seem to implement the most complex version of the feature I could imagine. But my autotiler will be so much more complex - err, I mean better.
Last edited by TMC on Wed Mar 04, 2020 10:03 am, edited 1 time in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

05/03/2020

See also Seilburg's devlog entry: Day 4 - One of these things is not like the other.

-------

Day 4 - This is fine. (Crossposted)


-Was about to work on mapgen
-Baked bread
-Oven caught on fire (and put itself out) -- specifically one of the heating elements caught on fire (!)
-Spent a few hours fixing the oven. We had an identical broken benchtop oven (which previously burnt out) for spare parts
-Optimised the oven by discarding excess screws, and replaced the casing (it was uncleanable) and the faulty door
-Bread was only a little burnt
-Reading more documentation. How wrong I was to think that GDScript is an implementation of Python
-Starting porting some Python code from our last 7DRL in 2011 to GDScript
-Fixing bugs. Don't know how you can have bugs without features
-Cleaning up code. Don't know how you can have messy code without code
-As a side project, got a new OHRRPGCE script compiler to the point of compiling its first script. Don't tell Seilburg

Day 5 plan: actually mapgen. And UI. And combat! A pony!

<a href="https://img.itch.zone/aW1nLzMwNjUxNDUua ... .jpg"><img src="https://img.itch.zone/aW1nLzMwNjUxNDUua ... 5U1pHe.jpg" width="600"></img></a>
Last edited by TMC on Thu Mar 05, 2020 11:59 am, edited 1 time in total.
User avatar
Bob the Hamster
Lord of the Slimes
Posts: 7658
Joined: Tue Oct 16, 2007 2:34 pm
Location: Hamster Republic (Ontario Enclave)
Contact:

Post by Bob the Hamster »

This dev log is so much fun to read, I have been looking forward to it every morning this week :D
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

Getting to write devlogs makes it all worth it!
Why spend your mornings reading 7drl devlogs when you could spend the entire day? Alas, I don't have time to read 1085 dev log entries a day ; ) (Actually, not many people are posting devlogs there; but there's more on twitter)

Ah, I forgot to include the attached image to my last log entry. Also added link to Seilburg's entry which is now up.

Day 5 preview: currently sidetracked
Last edited by TMC on Thu Mar 05, 2020 12:22 pm, edited 2 times in total.
User avatar
Prifurin
Red Slime
Posts: 41
Joined: Wed Dec 18, 2019 10:04 pm

Post by Prifurin »

Good job, TMC, these are so fun, ahaha!
Crossing fingers for your success, I even won't ask any dumb OHR questions until it's done(such a sacrifice XD)
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

06/03/2020

See also Seilburg's devlog entry: [s]None yet. He's shamelessly prioritised sleep over the devlog![/s] Day 5 - What use is panic

-------

Day 5 - Mismanagement secrets (Crossposted)


Image


The secret to a game jam is of course, procrastination. Yes! Working on your game is always procrastinating from doing something else important. Let those chores build up like... unwashed dishes. This is a well-mismanaged project, so I got a lot of procrastination done today. I'm even posting this over 5 hours late!

-Procrastinated working on mapgen by drawing player animations. Idle animations are good to have if there's nothing to do in-game
-Procrastinated working on mapgen by reading more documentation
-Procrastinated working on mapgen by porting my previous 7DRL sentence generator from Python. It's slick. Think of all the time saved don't needing grammar!
-Procrastinated working on mapgen by investigating possibility of procedural enemy graphics using (prerendered) metaballs. And browsing shadertoy
-Procrastinated working on mapgen by working on the inventory and item system (team-procrastination with Seilburg)
-Procrastinated working on mapgen by rewriting/cleaning up the inventory code
-Discovered Godot has an undocumented TileSet._is_tile_bound() virtual method I can use to make autotiling work the way I *really* wanted
-Procrastinated working on mapgen by working on mapgen
-Godot's autotile suddenly started producing garbage, and I'm in trouble now. Restarting Godot fixed only half the problem
-Procrastinated working on mapgen by writing this devlog. I want to record a gif. Via mp4 and ffmpeg? Recompiled OBS. Reducing gif size... by increasing OBS bitrate!?

OK. There are just [s]48[/s] 42.5 HOURS LEFT. Time for a reality check?

-Learning Godot: know practically everything I need now
-Mapgen: some broken code
-Graphics: majority done
-Music: we have some - all original. Except Bach
-UI/controls: plenty done, but even diagonal movement is broken​
-Enemies: generation but no AI
-Minions: generation but no AI
-Combat stuff: basically none
-Base-building: nope
-Exploration stuff: you can open chests
-Story elements: none
-Sentence generation: success!

Day 6 plan: PANIC. Also combat. The plan was to implement combat ~ day 2
Last edited by TMC on Fri Mar 06, 2020 7:13 pm, edited 5 times in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

07/03/2020

See also Seilburg's devlog entry: Day 6 - It's almost time.
-------

Day 6 - Bugs and other critters (Crossposted)

Image

24 hours remain (it's taking disturbing long for the panic set in, I'm not even spamming exclamation marks) and I'm wasting time on tweaking the procedural enemy generator, while Seilburg is wasting time drawing roofs. Who needs roofs underground?? We can't even agree on whether or not we've implemented combat yet or not! (We haven't)

-Fighting with the autotiling, managed to fix most problems. Ran into a Godot autotile bug where it places nonexistent tiles (hope that's not memory corruption) but worked around it
-Map gen! It's not complete yet, but it's largely there. Most importantly, need to place items. There's no time to have all the fancy stuff on the map that was planned
-Far too little sleep
-Debugging and debug keys
-I took the worst, most inscrutable tile I've got and wasted time drawing messy edge variants of it. And it turns out the autotiler refuses to properly tile them anyway
-Joints in my fingers hurt a little from all the coding and, worse, mouse usage
-Aforementioned procedural enemy graphics code. The eyeballs and bits were all overlapping badly so I wrote a quick dynamics simulation to push them apart... and then I realised I could run it in realtime instead of during generation!

Day 7 plan: 1DRL
Last edited by TMC on Sat Mar 07, 2020 9:07 am, edited 2 times in total.
TMC
Metal King Slime
Posts: 4308
Joined: Sun Apr 10, 2011 9:19 am

Post by TMC »

08-09/03/2020

Day 7.5: 1.5DRL (Crossposed)

Image

Success! ... if you want to be charitable. We've released a game. It's not really the 30DRL we were working on for the last week, but rather a new 1.5DRL we built by re-purposing our jumbled code and assets after abandoning the design doc.
But hey, it has a titlescreen, intro, combat, player progression, and a final boss.

If the goal is to produce a game within 168 hours, it wasn't strictly a success. I went a full 12 hours over our planned stop time! Seilburg had to leave not long after the self-set limit.

But funnily enough it does (almost) work out as 7 days if you consider times in local timezones instead of UTC - I started and ended half a day late and the timezone separation is 13 hours! I was just reading Godot tutorials for nearly a whole day before I started drawing graphics. Seilburg started/stopped a couple hours after start and end times too, but it was more than 168 hours.

Taking a look back how the game came together in the last 36 hours (what we both did):

-Bugfixes
-T-21 to T-17 hours: Implementing building placement (the UI for it was already done)
-New bugs appear
-Decided the game isn't going to be done in time
-Removed building placement from the game
-Another frustrating Godot autotiling bug. It's making up imaginary tiles
-T-17 to T-13: Adding pathfinding. Neither of us knew how to, so had to investigate alternatives to find the easiest one. Picked 'AStar2D' ... and ended up rewriting the example code we started with, it was horrifically slow.
-T-12: Implemented combat. Only peace existed before this point
-T-11: Implemented NPC/enemy AI. They just jittered around a point before this
-T-10: Now the player can attack too
-More bugs
-T-3.5: Added the text log and message boxes. There was no text at all onscreen before this.
-Removed more features
-T-1: Added a title screen
-T-0.5: Implemented actual rallying of minions (only had UI for it)... which is the core game mechanic
-T-15 min: Added music
-T+20 min: Place enemies on the map during mapgen
-T+1.5 hours: Added the boss and the intro
-T+3 hours: You can now recruit minions
-Bugfixes, balancing
-T+5 hours: Drew an attack pose for the player
-Fixing trivial bugs
-T+9 hours: Enemies now attack your minions too
-T+9 hours: Place items/chests on the map
-Bugfixes, balancing
-Writing a README
-Failed to include the README in zips (Edit: re-uploaded)
-Linux package crashes immediately, and I can't test the Windows or Mac ones. Oh well! (Edit: They were all broken and have been replaced)
-7DRL game jam page won't let me submit the game. Because it's under my name? (Edit: it's submitted)
Last edited by TMC on Sun Mar 08, 2020 9:08 pm, edited 4 times in total.
Post Reply