Skip to content

Instantly share code, notes, and snippets.

@grofit
grofit / 1-summary.md
Last active June 13, 2022 08:44
Indie Gaming Advice Thread Backup

This is a backup of a post made MANY years ago over at Indie Gamer Forum at request of others I have put it here for others to read.

If you have any questions related to this I dont really check that forum so head on over to my open source projects discord and ping me there Discord, with that out of the way everything else here is a lift from the forum post, enjoy.

FREE tools to assist in getting indie projects started

I was looking through but could not find much listed on this topic so wanted to condense some lessons learnt over the years and some good (and free) tools that can be used for an individual or a team to get the best start on a project and to help keep everything moving along smoothly.

So you have come up with a great indie game idea and you have done more than the 99% and have decided to go from the "thinking" phase to the "doing" phase, now rather than rushing in to some im

@grofit
grofit / traefik-compose.yml
Created May 23, 2020 19:32
Setting up Traefik 2 dashboard with basic auth, this is the same as my basic traefik 2 setup but with user auth from a file, you can see the original one here https://gist.github.com/grofit/e9a94ca02ba31ed1db9f88104f81c502
version: "3.7"
services:
traefik:
image: "traefik:v2.2"
container_name: "traefik"
ports:
- "80:80"
- "443:443"
- "8080:8080"
@grofit
grofit / traefik-compose.yml
Last active June 2, 2020 13:47
Setting up traefik 2 dashboard manually - This was a huge time sink for me, I hope this helps you (see https://gist.github.com/grofit/34c68dfa836eb351815edede5fc71f2f for my one with basic auth)
version: "3.7"
services:
traefik:
image: "traefik:v2.2"
container_name: "traefik"
ports:
- "80:80"
- "443:443"
- "8080:8080" # could be any port you want 1234:8080
@grofit
grofit / EntityBatchOperation.cs
Created April 24, 2020 21:33
Entity Operation Batching
public class EntityBatchOperation
{
private const int NoComponentTypeId = -1;
private Entity _entity;
private List<int> _componentsAdded = new List<int>();
private List<int> _componentsRemoved = new List<int>();
public EntityBatchOperation(Entity entity)
{
@grofit
grofit / validate-property-attribute.js
Created August 4, 2016 20:34
CommonJS test for validation group failure
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ValidateProperty = undefined;
var _dec, _dec2, _class;
var _aureliaFramework = require("aurelia-framework");
@grofit
grofit / app.html
Created April 8, 2016 14:41 — forked from jdanyow/app.html
Aurelia Gist
<template>
<h1>${message}</h1>
</template>
@grofit
grofit / NoCompositionOrSeparationItem.cs
Last active May 17, 2020 18:45
Example of view separation with composition
public class NoCompositionOrSeparationItem
{
public Sprite ItemImage;
public Vector3 InventoryPosition;
public Image ItemOverlay;
public string Name {get;set;}
public ItemType Type {get;set;}
public int Value {get;set;}
}
@grofit
grofit / SceneExtensions.cs
Created October 1, 2015 20:28
uFrame MVVM View Instantiation Helpers
public static class SceneExtensions
{
public static TView InstantiatePrefabView<TView>(this IScene scene, ViewModel viewModel, string prefabName, string instanceName = null, Transform parent = null)
where TView : ViewBase, new()
{
var prefab = Resources.Load(prefabName) as GameObject;
if (prefab == null)
{ throw new Exception(string.Format("Cannot locate prefab [{0}]", prefabName)); }
var createViewCommand = new InstantiateViewCommand
{
@grofit
grofit / Objective.cs
Last active June 25, 2023 11:31
Quick RPG Quest System Example
public class Objective
{
public ObjectiveType Type {get;set;}
public int ObjectiveInt {get;set;}
public float ObjectiveFloat {get;set;}
public Vector3 ObjectiveVector {get;set;}
// could possibly use Dictionary instead
}
@grofit
grofit / ExistingApproach.cs
Created June 12, 2015 12:52
A hybrid Strategy/Chain Of Responsibility style approach
public class Character
{
public EntityStates CurrentState { get; }
public void Update()
{
switch(CurrentState)
{
case EntityStates.Idle
{