Uzebox Tutorials And Such

From Uzebox Wiki
Jump to navigation Jump to search

Start to end tutorials on Uzebox

Current Progress

  • Last update 2014-02-10:
  • Tutorial 1 has the information posted but I need to include images for explanations.
  • Tutorial 2 has the information posted. I have most of the images posted but I still need to finish revising it. Fixed a small glitch in the convert.xml file.
  • Tutorial 3 has been started but is not ready for viewing yet. Will be discussing the movement of sprites and gamepad input!

Why Create a Guide and What is Uzebox?

This section will have a collection of guides. Links will become active once the guides are ready. Please see the contents to see what the tutorial covers.

Uzebox is a retro-minimalist video game console. It uses the Atmel 644 AVR microcontroller, a color converter chip, and an SD card. Other than that, it's just power filtering and a resistor-based DAC for the colors. That is what makes it minimalist. You basically just have a processor and a color converter. Everything else that the Uzebox does is done strictly in software with the main parts (kernel) being in assembly language for strict timing. Uzebox overcomes some of its minimalist limitations with the high speed of the processor. It is retro because the system isn't going to easily do 3D or very large games without some serious creativity. You can recreate some of your old favorite NES and possibly SNES games and Gameboy games. Or you can make your own creation! All in all, Uzebox is a fun way to learn about video games and programming.

The whole goal of this project was for me to learn how to make an Uzebox game. This turned out to be a lot of work. Lots of good materials exist on the forums and the wiki. However, they are aimed at people who already had a clue. My problem was that I wasn't even sure what tools to use and why they worked the way that they did. I think that I can safely assume that is a common problem with new folks.

So, I said lets make a guide so that I can learn (write a report, man!) and I'll follow some open-source dogma and give it back for others to use. I'm perfectly fine with that. Hey, the Uzebox is practically free if you just use the emulator and so is the information on the wiki and forums. Open source is good.

I believe that when a programmer becomes more comfortable creating games that they would be more likely to purchase the Uzebox hardware. I don't want to play these games with a keyboard. I want to see my stuff on a real TV and use a real gamepad! I want to show my friends the cool video game I'm working on without having them need to download the emulator and write a batch file to run my game with. I want to bring the hardware to their house, hook it up to their TV and say 'check this out!'

Tutorial 1: The Basics of an Uzebox Game

Link: Tutorial_1:_The_Basics_of_an_Uzebox_Game

Overview: Covers some of the fundamentals of an Uzebox video game.

Contents of this tutorial:

  • What are the key elements of creating a video game?
    • What are Tiles?
    • What are Sprites?
    • What are Ram-tiles?
    • What is a Video Mode?
    • What is a Collision?
    • What is Program Code?
  • What is a Development Environment?
    • Development Environment Tools

Tutorial 2: Creating your First Game

Link: Tutorial_2:_Creating_your_First_Game

Overview: Creating a tileset and putting something on the screen.

Contents of this tutorial:

  • Getting your Development Environment ready
    • Installing and configuring The GIMP
    • Install WinAVR
    • Unzip the dev trunk
    • Setup the folders for your work environment
  • Creating your first ‘game’
    • Creating and preparing graphics
      • Creating a tileset
      • Creating maps from the tileset
      • Creating sprite maps and tile maps
    • Displaying your graphics on the screen (intro to code)
      • Putting it all together
  • References / Links:
  • Most-Common APIs for Uzebox:

Tutorial 3: Gamepad Controls and Sprite Manipulation

Link: Tutorial_3:_Gamepad_Controls_and_Sprite_Manipulation

BETA! Please notify me of any problems. :)

Overview: Move sprites around the screen and interact with tiles.

Contents of this tutorial:

Tutorial 4: Take a Walk Through the World

Contents of this tutorial:

  • Moving between different screens in your game.
  • Handling world boundaries.
  • Review of collision
  • Realizing that flash storage is limited

Tutorial 5: Using the SD Card to Store Maps

Contents of this tutorial:

  • Resources for SD card access (PetitFS),
  • Speed of SD card access.
  • What should and should not be accessed via SD card.
  • Basic example of accessing data from SD card.
    • Problems you can expect to encounter.
  • Binary vs Text and why you can't just copy your maps to the SD card.
    • Conversion of maps from arrays to binary values.

Tutorial 6: Understanding the Makefile

Contents of this tutorial:

  • ... I have big plans for this.

Tutorial 7:

Contents of this tutorial:

Tutorial 8:

Contents of this tutorial:

Tutorial 9:

Contents of this tutorial: