Archive for September, 2019

More thinking regarding planning a way forward

September 27, 2019

I’ve been toying with the idea of trying to observe ‘Devtober’ as a way to start to execute on the following plan. It is very unlikely that I’ll be able to follow this plan, but it gives me something to aim for, as well as an excuse to get started.

October

Multiplayer

  • Create a rails server on EC2 per this video series
  • Per same video series, implement an asynchronous simple game with a lobby
  • Extend the logic of said game to allow for a randomly selected client to be promoted to host if the host drops out

Controls + Basic point and click

  • Using this project as a basis, implement a simple level editor with a tooltip and several assets from a meshlibrary
  • Ensure that the tooltips are synchronised across clients, as is the generated content

November/December

Procedural generation

  • Using lessons taken from GodotGetaway and this video series, as well as this pre-requisite video series , implement a combination of the recursive backtracker algorithm combined with random room generation to generate a map.
  • Using some of Kenney’s assets or otherwise as a basis, generate a two tier stratified random level, with random ‘rooms’ on a map representing town locations, and within the town locations random collections of buildings with random pathing.
  • In particular, at ‘map level’ one might want to have global routines to generate a template for the map, eg an interconnected set of towns with forests in between.

Controls for Procedural generation

  • Hook up a couple of procedural routines for ‘random town’ and/or ‘random forest’ to be able to point an click an area of a pre-defined size for a random set of trees and/or a random set of buildings. Would need to specify radius of area and implement some sort of tooltip.
  • It would be good to be also able to ‘blank out’ an area too, by removing any non-trivial assets thereon.

January/February/March

Tokens for players

  • Implement simple tokens for players, synchronised across clients
  • Implement simple W-A-S-D movement for tokens
  • Allow a player to ‘avatar in’ to a token, as well as to ‘avatar out’
  • Allow players to move tokens around the map in edit mode

Implement an overlay for random throws

  • Implement a text window that accepts commands such as “/random 1d5” and generates a number between 1 and 5

Allow tokens to be decorated with metadata

  • Allow tokens to be decorated with attributes
  • Implement health bars for tokens
  • Allow players to edit token attributes
  • Implement mouseover tooltips with detail for tokens

Share prototype

  • Get some feedback on prototype from friends

Q2 2020

Consider opening prototype to alpha

  • Look at Steam / etc
  • Look at building a dedicated website for the sandbox tool

Consider creating teachable course based on learnings

  • Consider creating an online course based on learnings in the above

H2 2020 and beyond

Evaluate feedback and iterate

  • Based on feedback, look into more advanced functionality
  • Build online course if I’ve decided to go in that direction

Assembling the pieces

September 15, 2019

I’ve been busy learning a bit about how to write games in Godot recently, in preparation for my D&D Sandbox game.

In particular, I’ve been following Godot Getaway (kickstarter here: https://www.kickstarter.com/projects/63029660/godot-getaway-intermediate-game-making-tutorials/) in terms of learning the basics of networking and procedural generation with GridMaps.

I’ve also kickstarted this course https://www.kickstarter.com/projects/heartbeast/a-1-bit-godot-course-by-heartbeast/posts but don’t have access to it as yet, and I’ve kickstarted this course http://www.kickstarter.com/projects/gdquest/create-your-own-games-with-godot-the-free-game-eng, but haven’t started it yet due to lack of energy.

For more advanced networking, I’ve been looking into this video series https://www.youtube.com/watch?v=q-c-kbENcBQ&list=PLKCbXu2bxxqa2PtT2rYNb4t5QUsotrTlP&index=3&pbjreload=10 wherein one can join and leave asynchronously (and which wherein a small generalisation should allow for promotion of a client to the new host if the host leaves). Also in same there is the knowledge provided to host a rails server in the cloud, which is something that I also want to do to get running.

For actually point and paint in Godot during runtime, I believe I have enough to get started from this code: https://github.com/fornclake/Zelda-Tutorial/blob/master/editor/level_editor.gd , albeit I will need to generalise it to GridMaps.

However, ideally I’d like to paint randomised procedurally generated content on a basic canvas during runtime, to save effort while playing the game – and eventually do more complicated things like painting in cities, or forests, or mountains. For that, I’m starting looking into things like Perlin Noise, and Worley Noise.