10 Hour Challenge

Advice on general approaches or feasibility and discussions about game design

10 Hour Challenge

Postby Myndale » Sun Jan 18, 2015 12:17 am

It occurred to me last night that while I've done numerous demos and utilities for Gamebuino I still don't have a title on the game page. Lunar Run is currently on hold awaiting art resources so I've decided I need a very short project in the mean time for those moments where I'm bored of working on the music tracker.

To that end I'm going to give myself a challenge to try to make a playable game with only 10 hours of actual dev time. This was partially inspired by looking at some of Quirby's concept art, I've always wanted to make a simple turn-based tactics game in the vein of Advanced Wars et al so I think I'll make that my goal. If anyone else decides to take up this challenge in future then the rules are simple: no cheating on time, and all game assets and dev utils etc must be developed in the 10 hours as well.

I'll post updates here as I progress, this is how I see the schedule roughly panning out:

Hour 1: Basic architecture and game management (eeprom save/restore etc).
Hour 2: Design of basic tile set and maps.
Hour 3: Rendering of main screen inc map/objects.
Hour 4: Player FSM
Hour 5: Combat FSM
Hour 6: Computer FSM
Hour 7: AI.
Hour 8: Extra levels.
Hour 9: Cinematics and final story.
Hour 10: Testing, bug fixing, AI improvements.

Wish me luck. If I manage to make something that doesn't totally suck then I might add multi-player afterwards.

Time remaining: 10:00:00
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: 10 Hour Challenge

Postby Jamish » Sun Jan 18, 2015 12:21 am

When do you begin?
User avatar
Jamish
 
Posts: 73
Joined: Wed Dec 17, 2014 6:52 pm
Location: California

Re: 10 Hour Challenge

Postby Myndale » Sun Jan 18, 2015 12:22 am

Probably tonight. It won't be 10 consecutive hours, my plan is to grab a spare hour or two here and there until I'm out of time.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: 10 Hour Challenge

Postby Jamish » Sun Jan 18, 2015 12:30 am

I look forward to hearing about your progress. No cheating, you can't even think about it outside of your 10 hours :lol:

And I have to admit, Quirby inspired me to think about a turn based strategy, too... Hmmm
User avatar
Jamish
 
Posts: 73
Joined: Wed Dec 17, 2014 6:52 pm
Location: California

Re: 10 Hour Challenge

Postby Quirby64 » Sun Jan 18, 2015 12:42 am

*Pauses video was watching in awe*

RTS-like on Gamebuino?

Well. That's something. :lol: Maybe I can use my little coding skills and the 30(?) mins I've spent on Get,Grab n' Go and try something.....maybe. I feel honored I inspired something, too :mrgreen:
User avatar
Quirby64
 
Posts: 131
Joined: Thu Nov 13, 2014 4:23 am
Location: USA

Re: 10 Hour Challenge

Postby Myndale » Sun Jan 18, 2015 11:44 am

First coding session went well, got the basic architecture in place along with the title, main menu and the game save/restore code. This part went faster than I was expecting and only took half an hour to implement so I've banked the extra time, I know I'll need it later.

Github repo is here: https://github.com/Myndale/BuinoWars

Image

Time remaining: 09:29:34
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: 10 Hour Challenge

Postby Marcus » Sun Jan 18, 2015 12:03 pm

Hello Myndale,

wow, something like Advance wars in 10 hours? I am looking forward to your results :-)
Command and Conquer on the PC and later Advance Wars on the GBA where one of my favorite games.

What size of sprites, 2D or Isometric, will you choose?

When mobile Internet ( WAP ) was getting popular here, I made a few browser based games for mobile phones such as the popular Nokia with 84x48 and 128x128. It was pretty obvious back then that the smaller screens where going to vanish sooner or later, but I tried to keep the games downward-compatible and at least somewhat playable.

After making a bunch of smaller games I finished WapCity, a simple Sim-City like game. After the 2D/tile-based version, I played around with isometric. It was a bit large for the small nokia screen, but not impossible :-)

Then a Advance War type of game was on my mind, but I never finished it. The original sprites where a bit big even for the 128x128, and controls awkward as selecting and drop-down menus where anything but standardized. It was more a chess-like control (unit from Field A-2 to C-5...).

Here a few sprite sets, mock-ups and screen shots from back then. I can't find the complete tile/sprite sets of the smaller tanks anymore, so much stuff gets lost in over a decade...

wapcc-stuff.png
wapcc-stuff.png (86.94 KiB) Viewed 5491 times


Also some random stuff, The christmas RPG, space ship configurator... If only my attempts at programming would go so quickly with the Gamebuino, I am still struggling with my simple "follow-main-character" code for Demake-of-Mana, still a bit buggy :-)
Marcus
 
Posts: 143
Joined: Fri Jan 09, 2015 6:51 pm

Re: 10 Hour Challenge

Postby Myndale » Sun Jan 18, 2015 8:50 pm

Awesome, thanks Marcus! I don't really have much time for graphics or dev utilities so I'll probably just do simple 6x6 sprites on a 2D map. The Tiled map editor is pretty easy to use and exports Json (among other formats), so hopefully that will port over to C quickly and easily.
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Re: 10 Hour Challenge

Postby Jamish » Sun Jan 18, 2015 10:00 pm

Myndale wrote:Awesome, thanks Marcus! I don't really have much time for graphics or dev utilities so I'll probably just do simple 6x6 sprites on a 2D map. The Tiled map editor is pretty easy to use and exports Json (among other formats), so hopefully that will port over to C quickly and easily.


I wonder if this may be useful to you. I wrote a console app in C# that takes a bitmap path from your clipboard and outputs (to clipboard) the C code equivalent for placing in PROGMEM.

It's a bit specialized in that it assumes you're using 4 bits per tile (16 max different tiles) but still could be helpful. Of course, it requires that you use something like MS Paint for your tile editor, and 1 pixel translates to 1 tile. Certain RGB codes are assigned to the tile values (0xFFFFFF is 0, 0x000000 is 1, 0xFF0000 is 2, 0x00FF00 is 3, etc) (I don't have all 16 colors assigned right now).

Image:
Image

Output:
Code: Select all
const byte world[] PROGMEM =
{
    98, 8,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x11, 0x00, 0x11, 0x11, 0x11, 0x00, 0x01, 0x10, 0x00, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x10, 0x01,
    0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x30, 0x00, 0x00, 0x11, 0x00, 0x11, 0x11, 0x10, 0x00, 0x00, 0x00, 0x11, 0x10, 0x00, 0x00, 0x00, 0x33, 0x30, 0x30, 0x00, 0x00, 0x00, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x30, 0x30, 0x00, 0x01, 0x10, 0x01,
    0x03, 0x00, 0x00, 0x30, 0x22, 0x23, 0x22, 0x32, 0x20, 0x30, 0x11, 0x03, 0x11, 0x11, 0x10, 0x00, 0x00, 0x00, 0x11, 0x10, 0x30, 0x00, 0x22, 0x33, 0x32, 0x32, 0x20, 0x00, 0x00, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x00, 0x00, 0x02, 0x32, 0x32, 0x22, 0x21, 0x10, 0x01,
    0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x11, 0x11, 0x11, 0x00, 0x01, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11, 0x11,
};


Source:
Code: Select all
/*
 * Made by Jamison Schuster (github.com/Jamish)
 * 12/2015
 * Do what you will with it, so long as you... remember... me...
 */

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;

namespace MapEncoding
{
    class Program
    {

        [STAThread]
        static void Main(string[] args)
        {
            List<string> output = new List<string>();
           
            String input = System.Windows.Forms.Clipboard.GetText();
            Bitmap bitmap = new Bitmap(input.Replace("\"", ""));

            for (int y = 0; y < bitmap.Height; y++)
            {
                for (int x = 0; x < bitmap.Width; x += 2)
                {
                    output.Add(colorToInt(bitmap.GetPixel(x, y)).ToString("x") + colorToInt(bitmap.GetPixel(x+1, y)).ToString("x"));
                }
            }


            String clipboard = "";

            clipboard += "const byte world[] PROGMEM =\r\n";
            clipboard += "{";
            clipboard += "\r\n    " + bitmap.Width + ", " + bitmap.Height + ",";

            int count = 0;
            foreach (var o in output)
            {
                if (count == 0)
                {
                    clipboard += "\r\n    ";
                }
                clipboard += "0x" + o + ", ";
               
                count++;

                if (count == bitmap.Width / 2)
                {
                    count = 0;
                   
                }
            }

            clipboard += "\r\n};";

            System.Windows.Forms.Clipboard.SetText(clipboard);
        }

        static int colorToInt(Color c)
        {
            string color = c.R.ToString("X2") + c.G.ToString("X2") + c.B.ToString("X2");
            int val = 0;
            switch (color)
            {
                case "FFFFFF":
                    val = 0;
                    break;
                case "000000":
                    val = 1;
                    break;
                case "FF0000":
                    val = 2;
                    break;
                case "00FF00":
                    val = 3;
                    break;
                case "0000FF":
                    val = 4;
                    break;
                default:
                    val = 0;
                    break;
            }


            return val;
        }
    }
}


Of course, you'd probably prefer the visual GUI of that tile editor you posted. It shouldn't be too hard to write a script or macro to convert it to a form you can consume.
User avatar
Jamish
 
Posts: 73
Joined: Wed Dec 17, 2014 6:52 pm
Location: California

Re: 10 Hour Challenge

Postby Myndale » Tue Jan 20, 2015 10:35 am

Well like I said, I'm not the most artistic person in the world, but at least it's something:

sprites2.png
sprites2.png (3.21 KiB) Viewed 5427 times

level1.png
level1.png (7.04 KiB) Viewed 5427 times


The Tiled map editor is fantastic, once I loaded the sprite sheet it only took a few minutes to quickly knock up the map. The next task will be getting it to display in-game.

Time remaining: 08:55:23
Myndale
 
Posts: 507
Joined: Sat Mar 01, 2014 1:25 am

Next

Return to Project Guidance & Game development

Who is online

Users browsing this forum: No registered users and 20 guests

cron