Saturday, September 15, 2012

Introduction

What is this?

Super Obelisk is a game I'm creating. It's partly inspired by the style of older Zelda games--most notably, Link to the Past--but also by the difficulty of games from that era. Ideally, I'd love to play a game with the difficulty of  Demon's Souls but the layout and progression scheme of Zelda games. Since I don't know of any games that satisfy these criteria, I've decided to make it myself.

Who am I?

I am Eric. I love playing and designing games, and I love programming. I plan on using temporary art (from Link to the Past!) for the period of initial development, and eventually working with professional artists to start bringing my game world to life.

What's the story of the game?

I don't have one just yet, but it won't be the focal point of the game. I truly believe in gameplay first--a story should never get in the way of the game. I have half a mind to intentionally leave the story minimal. One of my favorite games of all time, Super Metroid, gives the player about 3 minutes of 'story' at the beginning of the game and proceeds to immerse the player in a beautifully crafted world, creating a notable experience not through plot, but through solid gameplay, memorable locations, and great music.

What technology are you using to create the game?

  • C# for the game engine and tools
  • SlimDX for rendering
  • Lua for scripting (most game logic in is Lua)
  • C# for behavior programming (previously Lua, I've instead adapted a plugin architecture in C#)
  • JSON for serialization of levels and other data
I'll add other technology as needed (I haven't investigated the best tool for audio yet).


So what's with the blog?

I'd like to document the process of creating this game from start to finish. Although I've put a few days of work in already, there's not much there yet, so a single post should be sufficient to bring the documentation up-to-date. So, without further ado, let's start!


So far the code consists of:
  • Four projects. The game, the world editor, the texture set editor, and a utilities project.
  • Map structure is simple a list of Entities and a two-dimensional array of TileStacks
  • A TileStack represents an (x,y) location on the map and consists of a list of Tiles.
  • A Tile has a texture and a layer.
  • An Entity has a position, size, rotation, texture, and layer. Entities represent objects not bound to a particular indexed location and will be used for decorations, moving objects, enemies, items, etc.

Here's the editor when we launch it:


Now we go to File -> New to create a new Section.


The default map configuration is a section of 10x10 tile stacks. As you can see, each of these stacks is empty.

Clicking on one of the tiles while in Tile Selection Mode (top left icon) brings up the tile editor. The tile editor simply shows each layer (pre-defined) and allows us to change the graphic for that particular layer.


From here we can click on a gray box (which represents no tile selected for that layer). This launches a file browser. Selecting an image will set the Texture of that tile, assuming the selected image exists in the Texture Set (managed by the texture set editor).



We can also clear any tile by clicking the 'X' button for any layer.

No comments:

Post a Comment