Pixal: The world that never was

About 5 years ago, I set myself to finish Pixal. One of the big things I had to do was creating a huge world which players could explore with their expeditions.

pixal3years

I begun by pasting together the output of several runs of a fractal/voronoi terrain generator, doing small modifications for them to fit.

pw9-scroll
The whole world

In order to ease the edition of the world, I divided it into 350 32×32 tiles sectors (total world size: 800×448 tiles). My sister was entrusted with the huge work of creating the individuals maps by hand.

grid-terrain-rivers-2x
The world divided in 350 sectors

In addition to the ground level, we also created a subterranean / underwater map and another one for the “skies”.

There was a server side component which swallowed the TMX maps into the database and allowed players to browse the world. Then, to make scale even grander, I allowed zooming into each one of the tiles, generating another persistent map (32×32 I think), in which you could create your own buildings, or explore caves (randomly generated using CA). Then the project collapsed under its own weight, even though all this hard mapping work was finished.

 

In the end, Pixal was never released, and this world was left unexplored.

subi11
Underwater sector I-11
j3
Ground level J-3
aire2
Air sector E-2

 

NeoArcherFire QuickBasic source code

Today I decided to try to include some of my oldest game projects into my page at http://slashie.net. A couple of them were ArcherFire and NeoArcherFire, the first games I created which included graphics.

Screen Shot 2016-08-16 at 11.45.34 PM

Bundled with the original ArcherFire, I found a file which was supposed to be its source code. I tried checking it out: it was a .BAS file so I thought it’d be a plain text file with QBasic source code… I was wrong, it was a binary file.

Then I remembered back then the version of “QBasic” I used allowed saving the source code as binary files for faster loading times. I downloaded QBasic and tried to load the file (Using DOSBox, of course). It failed, unable to read the binary contents.

I googled a bit and refreshed my mind: back then I was using QuickBasic, not QBasic.

[from wikipedia]

A subset of QuickBASIC 4.5, named QBasic, was included with MS-DOS 5 and later versions, replacing the GW-BASIC included with previous versions of MS-DOS. Compared to QuickBASIC, QBasic is limited to an interpreter only, lacks a few functions, can only handle programs of a limited size, and lacks support for separate program modules. Since it lacks a compiler, it cannot be used to produce executable files, although its program source code can still be compiled by a QuickBASIC 4.5, PDS 7.x or VBDOS 1.0 compiler, if available.

I downloaded it and was able to check the source code, finding out that it was Neo ArcherFire, the enhanced version which used DirectQB, and my final game project using any BASIC variant!

af1

I made this game back on 2003, the source code is surprisingly organised 🙂

Screen Shot 2016-08-16 at 11.31.08 PM

I exported the binary “project” to ASCII, and uploaded it to github, if you are curious you can check it out here, but I’d recommend getting MSQuickBasic so you can navigate the SUBs easily 😀

This game was powered by DirectQB, a lib released in 1999 by Angelo Mottola which greatly extended what could be done by QuickBasic, you can find more info here.

Although this wasn’t really my first game, I think it’s very unlikely for me to find any older source code, it was lost in my old 486… may be some day I’ll find a rusty diskette with it? Some of the things I miss the most are:

  • The source code of the original ArcherFire (with graphics): The only surviving compiled version has you starting with 1 hit point left, so it’s pretty hard 😀
  • The romhack for translating Final Fantasy I to Spanish, which I recall was a lot of work and was (almost?) done
  • The non-graphics versions of ArcherFire, as well as some earlier console-mode games I made including a set of “athletics” games (I recall one being about 100 meters dash), another adventure game where you could move a happy face around, and a puzzle game similar to Dr. Mario.

The tale of Pixal

Eight years ago, back on November 2007, I started a project. I wanted to do something different than I used to do back then.

I worked on the project for about 3 years investing about 700 development hours and learning a lot in the process, but the project never went public.

469_41304912562_862_n.jpg

I can think on two reasons why it happened:

I never had a clear idea on what the game was going to be

I started the project thinking on doing something pretty simple so you could create a virtual character and buy clothing for it.

1-buddy

Then, for some reason, I added combat to the mix, probably because I just have something with Fantasy medieval combat.

2-fighter

But I actually think that choice was ok. Developing a doll-dresser was not very exciting in the end. The combat model evolved becoming complex and interesting, and I put a tournament in place where people could participate. By then I was using the open source graphics from Dungeon Crawl.

2-fighter-combat

By the end of year 2, the game was actually pretty fun, or so it seemed based on playtester’s feedback. You could create a group of pixals, make them participate on a tournament and buy equipment for them. Fights were based on a deck of skills you had, where you earned new cards as you leveled up. Good players got weekly medals, new equipment was spawned daily on the stores. Denzi, one of biggest contributors to the pixel art of Dungeon Crawl Stone Soup had joined the team and provided a slew of awesome pixel art. (hint: Most of it is being reused for Ananias today) Everybody was happy.

3-tournament

However, fueled by player feedback and some books I had read on the subject of virtual worlds, I wanted more.

It all begun with the idea of providing alternate activities other than fighting; I toyed with the idea of the city where the fights took place, and now there were other buildings where the pixals could work for money. The idea started evolving to the point where I wanted to create an entire world where expeditions of pixals could explore the world, build settlements, trade stuff. A virtual economy, a world browser.

pixal3years

I failed.

Not only was the world browser a huge undertaking, I also didn’t actually know how to make exploring the world an interesting adventure…. I had people creating a huge 3 levels map for the world which I never ended up using. I added a zoom feature, including random cavern generation for the detailed terrain and a rudimentary system for placing tiles into the world, which would eventually become buildings. I then tried adding guilds (?). None of that made exploring the world fun.

If I had had a clear goal on what the game was going to be, I could have released on 2009, at least as an initial version; developing the world browser was not needed to have a working game, and actually unleashed a ton of risks into the project which actually happened. Which brings me to the next point…

I underestimated the effort.

Developing the world browser was just too much for me… just from the technical perspective back then we didn’t have widespread and readily available tools for bidirectional interaction with the server from a browser (such as modern websockets), but that was only part of the problem, I also lacked the skills required on game design and world building to create a compelling experience and an interesting world.

I tried to work around this by planning, separating things into modules, estimating, organizing stuff. But in the end I hit a point where no matter how I tried to look at the project, I could see no way forward.

Eventually, I ran out of energy and abandoned the project, just to pursue a second one which would suffer a very similar fate…

…but that’s a story for another day.

From time to time, I feel the urge of rolling all the world browser thing back, and do a public release of just the tournament… but times have changed, there’s much more competition now… maybe no one would care.

MiSilleta.com – Flower Arrangements Generator

 

Fourth year in a row, I’m activating misilleta.com; it’s a facebook app where people creates flowers arrangements and shares them with friends, did it on my own for a local tradicional event in my city (Medellin Flowers Fair)

This year someone told me to make it so that the app could create the flower arrangements automatically using the user’s profile picture, so I set into it 🙂

I’m using the basic php gd functions for image handling, basically obtaining the image data from a URL, scaling it, adding contrast and then going thru the pixels, looking for the flower that matches its color best (using a simple less-distance criteria on the RGB cube) and placing with a bit of a random variation into the virtual flower canvas; then connecting to the already existing infrastructure for handling the flower arrangements.

In the process I found out the flowers that I had there were not covering enough hues (so the pictures looked a bit crazy)

Screen Shot 2015-07-17 at 7.23.47 AM

Screen Shot 2015-07-17 at 7.30.30 AM

I had to color some of the flowers to cover more of the green and blue hues, as well as black and grey.

Source Image
Source Image
Resulting Flower arrangement
Resulting Flower arrangement


Archerfire 0.41

Play online!

041

Changes

  • Increase rate for Powerups
  • UFO type ships should lean forward to advance
  • Lean forward or backward automatically when climbing or diving into planets
  • Fix initial values for war status screen

Pending

  • Add intro sequence using big ships, a la Megaman
  • Less Big Ships, and change sprite for a small robot
  • Enhance torch weapon (or put it on a premium ship)
  • Make enemies lean forward and backward when changing altitude
  • Make allies smarter
  • Nerf laser enemies
  • Withstand hits before losing weapon upgrade
  • Bug: Keep music volume when looping and paused!
  • Letters don’t look good in bright planetary backgrounds.
  • Reduce SWF size (currently 8MB)
  • Reenable payments

BrazilAlbum.com, finished

Well, now that the world cup has started, I gotta mark this project as finished. I also did a drawing for a tshirt among the people who completed the virtual album.

What were the results? I learned a bit about JQueryMobile, managed to create an application targeted to the local audience and got some little exposure. I also ended up with the “Collections” framework I might possibly do something with later on.

Another financially unsuccessful project, but at least friends and family had a little bit of fun.

Archerfire 0.40 released

This is a MAJOR release from last one 🙂 PLAY ONLINE

Version 0.40
New version 0.40

It’s been almost a year, last one was August 15 2013… thousands of things have happened.

What can I say, I decided to shoot to finish it and made some hard choices in order to take it into the shipability route. It’s a completely different game!

Here’s a gameplay vid:

I have stripped a lot of functionality that was either incomplete or burdened the user experience, say goodbye to:

  • Custom Player Creation – Was overly complex and offered little return for the player
  • Weapon and Pilot Selection – Now they are tied to the ships, so you can jump quicker into the game.
  • Wingmen – This was unfortunately not polished enough, it might go back into the game soon.
  • Difficulty level selection – To streamline the game and make it easier to balance (balancing 5 difficulty levels was not fun and was a nuisance for players as well)
  • Missions Mode – Was incomplete, buggy, unbalanced and unfun.
  • Items Shop and consumable powerups and Batteries – They were not really useful in-game, plus I don’t like them as a monetization model.
  • Experience Points: Not useful
  • And many more other things
Previous version, note the screen size and additional data
Previous version, note the screen size and additional data

I also added two new tracks for the Title and GameOver screens, and changed resolution to 800×480 (was 900×650)

Additionally I debugged and reworked critical portions of the code

  • Enemy AI modules
  • Enemy spawning structures
  • Sound Management

Ship purchases are currently broken since facebook seems to have completely changed how that works since it was functional last year; that might require a fair bit of work to get up and running again.

Pending tweaks:

  • Less N00b enemies, more smart ships
  • Increase rate for Powerups
  • Add intro sequence using big ships, a la Megaman
  • Less Big Ships, and change sprite for a small robot
  • Make enemies Lean forward and backward when changing altitude
  • UFO type ships should lean forward to advance
  • Lean forward or backward automatically when climbing or diving into planets
  • Make allies smarter
  • Bug: Keep music volume when looping and paused!
  • Letters don’t look good in bright planetary backgrounds.
  • Reduce SWF size (currently 8MB)
  • Fix initial values for war status screen