• Commodore Free Magazine, Issue 77 - Part 11

    From Stephen Walsh@39:901/280 to All on Sun Mar 2 13:15:35 2014
    me machine
    transporting me back to my childhood and 80's.

    - - - - - - - - - -

    Q. Tell our readers about the the Ludum Dare 27 competition

    Ludum Dare is a regular accelerated game development event. People develop games from scratch in a weekend, based on a theme suggested by community. Developers make games in 48 hours and play/judge each others games for
    several weeks. The Ludum Dare community is a very supportive group of game developers; and everybody wants to just have fun.

    - - - - - - - - - -

    Q. So FASTBOY won 36th place in 48h programming competition section; up against a vast (1437 entries) what computer systems were covered; and you
    must be very pleased with that result

    Most of people use high level tools and create web or Windows games ;(only
    few games for retro devices). I made 3 games for Windows, Android, Wii and Web, but then I recognized that retro platforms received lots of publicity.
    So I choose to make a small experiment with my VIC-20; and check if it
    would get any publicity. And yes.. my evil plan worked fine, :-) People respect old machines. There were people who are too young to understand
    what VIC-20 is; They know about the Commodore 64 but didn't know what the
    VIC was.

    - - - - - - - - - -

    Q. How does the competition work, for example what tools can you take in
    the competition with you, and how do the judges know you haven't got a "stashed" disk in your coat pocket to just "pull out" at the last minute!

    You can use 3rd party tools/game engines; or your own base code, but you
    have to publish the base code; and tools list before competition. When competition starts, the theme of the competition is then published. Of
    course you can "pull out" your old polished game, but it would be pathetic. Ludum Dare does not have any prizes; and people realize very quickly if you cheat.

    - - - - - - - - - -

    Q. The source code has been released as well as the game; it looks like
    the game was written in C programming language, what was the reason for
    this why not machine code.

    Well I am a C dude. I always use C (or C++). I even make web applications with C. When I started developing games for VIC; my goal was to check that
    it was possible to use C for 8-bit games. Sometimes I feel that I have to
    code same game twice, first I would make a C code; and during optimizing I research compiler results; and then try to understand best way; to make smallest compiled file. But that's fun!

    - - - - - - - - - -

    Q. Apart from memory limitations on the machine, what other single factor
    was the biggest problem while writing the game

    I did not have any problems mainly because I had 48hour to fill just a few kilos of memory (how hard could that be?). I was making "Bolder Dan" when
    I wrote "FASTBOY"; and I have learned enough to help me avoid the biggest problems. "FASTBOY" is so simple; that developing it did not cause me any nasty surprises, only straightforward coding, a few graphic objects and
    coffee.

    - - - - - - - - - -

    Q. Did you go into the competition with the game idea, and test code
    written "in your head", or did you just go in blind in the hope something
    good would come out at the end

    I had only one plan: that was to write a simple game for VIC-20 and make
    it as quickly as possible. I didn't have any high hopes about making best
    and most unique game ever.

    - - - - - - - - - -

    Q. how do you practise for such a competition

    I develop my own framework which support Windows, Android, Web and Nintendo Wii. I am interested in OpenGL and low level coding. I wrote my own music tracker; which gave me new information about audio programming. I feel
    that retro 8-bit coding is something that is missing when you make
    applications for modern devices.

    - - - - - - - - - -

    Q. the next game I reviewed in commodore Free "this issue" was "boulder
    Dan"; now we can see that time limits weren't an issue on this game; as the quality is very high, how long did the game take to write, and was this
    also written in C

    Yes, it is also written in C. (funny.. thins about the name is, the game
    is called "bolder dan" but English people always spelling it "boulder dan". Well.. maybe I was trying to be too clever when I discovered the name.
    I'm sorry about that.).

    "Bolder Dan" took almost 6 months. It took only few weeks to make
    gameplay, but memory limitations were total pain. I made a simple level
    which provided a skeleton of the game and realised that the memory was
    already full.

    First I optimized everything, then I gave up; and rested for a few months
    (and I built a new roof for our home). After summer I started optimizing again. I squished a few bytes and added a new feature. Then I squished
    few bytes again and added more stuff. This continued over several months.

    It was so slow but so rewarding to realize that I can make it. Finally I posted the game to Denial forum and decided that the project has reached
    its target.

    - - - - - - - - - -

    Q. In my review I criticised both games for not returning to a "main
    menu", I presume this is purely down to memory limitations, was all the available memory used up on bolder dan

    Yes.. that "feature" is very annoying, but you are right the reason was
    that the memory limitations of the machine were hit. My games have several parts; because I wanted to provide decent music and a neat start screen and
    use all available memory for gameplay.

    If you check the Bolder Dan screen you can recognize that first row is
    black. This is because the first row of screen has program code. I used
    too much memory, no room for new data. No room for going back to "main
    menu". Maybe C-language is the main problem; but it was my decision to use
    it.

    - - - - - - - - - -

    Q. what plans do you have next

    Well.. my first goal was a make decent game for unexpanded VIC. I think I have made it and now! So maybe I can use some extra memory next time.

    My next project is bigger; and its working title is "Bertie The Ball". I
    made a "smooth" software sprite routines and the main gameplay is now
    ready. I just tested it on a real VIC and it worked really nice.

    I have to add new screens and puzzles before I can release it though. I
    won't tell you too much but I have to say that one of my favourite C64 game
    is "Cauldron 2".

    - - - - - - - - - -

    Q. Ohhh sounds cool, what tools did you use to develop both bolder dan and fast boy games

    cc65 compiler and CBM prg Studio for graphics. Now I use Commodore Sprite Maker v.1.4b (nice little app btw.) and my csm to h-file converter which exports sprite data to my data format.

    I planned to make music tracker for windows which could make music for VIC.
    But that is a another story.

    - - - - - - - - - -

    Q. That would be a neat project, bolder dans music in very unusual, can
    you enlighten our readers more on its creation and what you based the piece
    of music on

    Well It took few hours to make that song. I am a fan of 8-bit music and a
    year ago I made my own chip-tune music tracker which I used when I made
    games for Ludum Dare competition. I used that knowledge when I created
    music for VIC games; but I did not use any music tools for that. I just
    coded a small routine which handled my simple music format and I put bunch
    of notes to code table.

    Here is "bolder dan" theme music (very complex):

    const byte a1[]= {C3,E3,G3,C3,D3,G3,
    C3,D3,E3,_E};
    const byte a2[]= {C1,_S,_S,G1,_S,_S,
    C1,_S,_S,G1,_S,G1,C1,_S,_S,G1,_S,
    _S,C1,_S,_S,G1,G1,G1,_E};
    const byte a3[]= {_S,_S,_S,_S,_S,_S,
    C2,D2,E2,E2,D2,C2,_S,_S,_S,_S,_S,
    _S,E2,D2,C2,D2,E2,C2,_S,_S,_S,_S,
    _S,_S,_S,_S,_S,_S,_S,_S,_S,_S,_S,
    _S,_S,_S,_S,_S,_S,_S,_S,_S,_S,_S,
    _S,_S,_S,_S,C3,D3,E3,E3,D3,C3,_S,
    _S,_S,_S,_S,_S,E3,D3,C3,D3,C3,G3,
    F3,E3,D3,C3,_S,_S,_S,_S,_S,_S,_S,
    _S,_S,_S,_S,_S,_S,_S,_S,_S,_S,_S,
    F2,E2,D2,D2,D2,C2,C2,C2,D2,D2,D2,
    E2,E2,E2,D2,D2,D2,C2,C2,C2,E2,E2,
    E2,G2,G2,G2,_S,_S,_S,_S

    --- MBSE BBS v1.0.01 (GNU/Linux-i386)
    * Origin: Dragon's Lair ---:- bbs.vk3heg.net -:--- (39:901/280)