|
What I'm workin' on
wifight is a free client/server turn-based multi-player multi-game online game service for Treo/Centro smartphones and other network-enabled PalmOS devices. Fun! Try it out if you have a Treo or Centro.
Debris Visual Art: A long-running art project. It generates surrealistic paintinglike displays from random imagery accumulated from the Internet. The image continually shifts, but just barely too slowly to see. Someday you'll have a dedicated LCD picture frame in your house running this. I have been working on this off and on since about 2001.
bmem: A simple (very simple) HUD for your PC, showing memory/CPU/disk use. In win32 the disk cache memory and free memory are kind of the same thing but they are reported separately, which is a huge pain. So I was inspired to write bmem. I also tried to make it as tiny and efficient as possible.
RSXE: This is my RSS/Atom/whatever newsreader. It's kind of approaching alpha 1.0. I use it every day and code up a feature or two when I find something I miss. The goal here is simplicity, efficiency, and speed.
Hlscript: When a programmer starts a blog, he can either use a pre-existing software package, or write one himself. Guess which option I picked. Hint: this blog runs on it! The design goals here are once again simplicity and speed. And easy hackability/customization. And not requiring a SQL engine. And not requiring too recent a version of PHP. Or browser.
Listo: A PHP-based personal streaming mp3 server. I wrote this to use with my Treo 650. It has a Web page interface to queue up songs while you stream them via PocketTunes or similar. It uses LAME to transcode songs to a usable bitrate. I use 32-40kbit mono variable bit rate over GPRS/EDGE.
|
|
| | | 26-may-2009 tuesday
| wifight at 1.0: at long last
After actually-I-forgot-how-many-months-at-this-point, wifight is now
at 1.0(!) AND supported on BOTH PalmOS and Win32. I ended up porting the port
back to PalmOS, so now I have a nice portable OS-independent client app that
compiles on both platforms. UI changes (most of them) just show up in both.
It's nice.
Hooray! Now I can finally start moving people off good old 0.36, so I can
Break Stuff again.
And, I'd like to invite you to wifight! Yes, you! The client is now posted to the front page. See you in the chat!
|
linkme |
| | |
|
jan 29 2009 thursday
| wifight on win32: status update
So for the last two months or so, I've just been pushing on getting the
win32 port of the wifight client up and running. The game engine had already
been ported, but that still left all the UI. And there is actually
a lot of it now. So what I did was write a parser that reads from the PalmOS
.rcp file and outputs some C-style tables into a header file.
Then I #include that header file back into the C++ and have some code that parses the data
in it and recreates the same UI, but with win32-native elements (buttons, edit fields, checkboxes etc.) Then button clicks and such are passed to the portable
Screen object for processing which doesn't know or care which OS it is running
on. So this is really getting the clients in
sync. I'm at the point where you can switch between screens, play turns (of
course!) and a lot of the features work, including a bunch of the menu items and buttons.
It's still a work in progress, but you can try the build
I just posted to the forums if you have a wifight login already.
So that's coming along nicely, and the client codebase is getting very
portableized in general, which should make future ports go much more easily.
And now at this point I'm doubling back and porting the
PalmOS build to the new portable code. So hopefully by the time everything
is working on both sides again I'll have a nice portable codebase to build
features on, and hopefully I'll be able to add basic UI features to both
clients simultaneously.
Wifight winclient has also been cursorially tested on WINE, so if you're on
Mac or Linux (or ...?) and at all adventurous, you should give it a shot.
|
linkme |
| | |
|
nov 24 2008 monday
| wifight... on windows
wifight has been in alpha for quite some time now. In fact, total development
time is now up to about 3 years as of this month! After 34 releases of
the client software, I'd say it's time for beta.
wifight.prc version 0.35 will be in fact a beta, not an alpha.
Also, as mentioned in the wifight discussion forum, I started
on a Windows port of the wifight client a few weeks ago. It's coming along pretty well. It
might seem counter-intuitive to port mobile software such as wifight to
a desktop platform, but I think it will pay off. You certainly can't beat the
size of the market. Pretty much everyone these days
runs Windows or can get access to Windows. Most modern OSes (Mac, Linux, etc)
will even emulate Windows. And I already had to port the game renderer
itself to Windows in order to run wifight in the Palm simulator. So that part
was already working. The networking and file storage stuff ported over
pretty well too. Hooray for jnetlib and sqlite!
Now I'm working on recreating all the UI.
Basically I'm trying to set things up where I get to reuse as much of my work on
the PalmOS UI as possible. Any changes to the PalmOS UI resource file should just automagically show up in the port, and I shouldn't have to manually recreate anything.
So, I started writing a program to parse Palm resource files and it went pretty well.
So far it extracts all the alert resources and writes out a .h for
the Windows code to include, which recreates the alert on the fly as needed.
Next up will be parsing out and recreating the form resources (i.e. game list,
game screen, about box etc.) Then the menus. Not sure how I'll do those
but I'll figure it out when I get there. Then I need to get all these UI
components talking to the app code in a portable way. All of this is
helping to smooth the way for future ports too.
And of course the next platform coming up will be: iPhone! 99% sure anyway. By popular demand.
|
linkme |
| | |
|
oct 25 2008 saturday
| wifight: another dungeon peek
You can see the rooms are now filled with a solid color. The treasure
chest and blob now actually represent items in the room. The room graphics
are still hardcoded. The inventory screen is actually representing
inventory though. I'll probably make it display items in a tile pattern
eventually. But
I have 4 blobs and a treasure chest, so I'm doin' alright.
|
linkme |
| | |
|
10/24/2008 friday
| wifight reversi: new feature: running scores
I just added a neat (and often requested) feature to wifight's Reversi implementation:

Running scores! The numbers count up and down as the pieces flip. This feature will take effect in new games only, and kicks in on the first flip.
|
linkme |
| | |
|
17 oct 2008 friday
| dungeon: what it looks like lately
Here's what dungeon looks like lately. It's still basically a sketch, but
the orange room outlines are being generated by Lua.
And the treasure chest and green blob graphics are being loaded from their own modules compiled from their own SVG files.
They're just being displayed– they don't represent actual objects in the room yet.
The dude is still part of the sketch.
I've been doing a lot of reading up on roguelike and dungeony type games.
This is gonna be fun.
|
linkme |
| | |
|
2008-10-15 wednesday
| wifight client version 0.34!
It's a been about 3 releases since I last blogged about the wifight client, so
here's all the relevant whatsnew.txt entries:
0.34:
- added even more error checking in the TCP/IP handling code for reported TX connection probs
- fixed a crash bug when you tried to start a game with a player from the player list screen
0.33:
- added a nifty 'User Guide' button that appears in the Select Game screen if there's a User Guide for that game
- fixed no buttons in gamelistscreen bug
- fixed circle scaling math bug that was making the Dots dots look crooked
- made player roster show 8 rows instead of 7
- fixed an entity Z order bug
- moved game list text field in progress pop so it doesn't overlap screenshot icon
- reviewed and improved netlib error handling in cases of error
- tightened up HUD text left and right padding
0.32:
- new player 'Where to?' popup no longer includes 'New game' option, because if you're brand-new, who are you gonna make a game with? Now just 'Spectate' and 'Chat' options.
- fixed bug where gadgets would paint over New Game screen if you came from the player list
- swapped positions of 'Browse Games Archive' and 'Browse Player List' menu items
- fixed cursor disappearing bug in gamescreen, at least in some cases
- fixed another related cursor repaint bug
|
linkme |
| | |
|
14-oct-2008 tuesday
| 400 turns in 24 hours!
I'm not 100% sure if this is an official record, but it's certainly
the first time I've seen a number this big come up in the stats:
Pretty cool. I have to give the credit to Reversi, I think. It's actually pretty fun and is turning out
to be a great fit to wifight. I'm really glad I added it.
|
linkme |
| | |
|
05-oct-2008 sunday
| a little dungeon action
Here's a screenshot from a work-in-progress game for wifight. I'm calling it "Dungeon" or "wifight Dungeon" for now.
This is just a mockup, not an actual playable game (yet.) A sketch I made in Inkscape,
converted from SVG to wifight description, and displayed in the client.
Normally I tend to not show off what I'm working on until it's almost done. I
can't help it: I'm a bit of a perfectionist. I just want it to be as awesome as
possible when you do see it.
But I thought, why not try developing
this one in public, and let the world tell me what it thinks as we go. Maybe it
will be fun.
So, Dungeon.
Thats's a stats bar on the right. It seems to be a standard
feature for all RPGs so I'm sticking with it. Then maybe your inventory
appears in the box below the stats.
On the left you have the dungeon view. You would see the room you're in,
and a little bit of the rooms around you (that you have been to.)
Your avatar/little dude would appear in the center of the room and
the various objects/monsters/etc in that room would also appear surrounding the player.
That's what the green blob and squiggly line (I mean, a scary snake!) represent.
Each level will be a 2d grid of rooms. The levels will be procedurally
generated, so it will be a different layout each time.
That's gonna be fun to code! And fun to play I hope.
A while back I wrote a little MUD-like rooms-n-objects layer (a real simple
one, just for fun. Lua is incredibly well suited for it.) so now I'm
building on top of that. That's what's generating those green buttons.
I'm not 100% sure how I'm going to go from a MUDlike freeform node
system to a 2d grid layout yet, but I can't wait to find out.
The gray boxes represent some kind of UI (to be determined) to perform various
actions, like, say, search, casting spells, etc.
So that's the sketch so far. What do you think?
|
linkme |
| | |
|
28 sep 2008 sunday
| another new wifight game now online: reversi
I just made Reversi live
on wifight! So that's, what, 5 playable
main games, and 5 variations. That's 10 in total! Awesome.
Reversi is a game played on an 8x8 board. Four pieces are placed onto the center 4 squares before play begins. Players take turns placing pieces
of their color (white or black, black goes first) onto empty spaces on the board. The position must have at least one or more contiguous lines of the opponent's
pieces between it and another one of the player's pieces. After placing
the piece, the trapped opponent's pieces color changes to the player's color.
Hard to explain, but easy to learn, especially because only legal moves
are selectable in wifight Reversi.
You can read (and write!) about
Reversi on the wifight wiki, and also spectate Reversi games on wifight.
You do not need to update your client to play Reversi on wifight. It will
just magically show up in your game select screen the next time you log in.
|
linkme |
| | |
|
15 sep 2008 monday
| new wifight game: Chess(NoAI)
Announcing a new playable game on wifight! Chess(NoAI), or just "Noai" for short, is now live and playable. To recap:
Chess(NoAI) is a modification to Chess. It can only be played by human
players, not AI players. Play proceeds normally, except that before every turn,
the AI (chessbot level) chooses a move. This move becomes unplayable, and is
greyed out on the board. If there is only one move available then it will
not be greyed out.
You can read more
about Noai on the wifight wiki, and also spectate Noai games on wifight.
There is no client upgrade required to play Chess(NoAI). Look for it in
your Select Game screen.
|
linkme |
| | |
|
10-sep-2008 wednesday
| home again from CTIA
CTIA was interesting. It seemed to be all about software these days instead
of hardware gadgets, especially mobile
software. So I'm glad I went. I got a good peek at the industry I'm (partly)
in. I didn't really try to talk business, though, since I am still only in
the planning stages when it comes to wifight's business side.
No t-shirts, but on the other hand we scored both yo-yos and miniature cell phone beach chairs. So can't complain.
wifight: new games on the horizon
First, we have Chess(NoAI).
Chess(NoAI) is a modification to Chess. It can only be played by human
players, not AI players. Play proceeds normally, except that before every turn,
the AI (chessbot level) chooses a move. This move becomes unplayable, and is
greyed out on the board. If there is only one move available then it will
not be greyed out.
What I like about this variation is that it adds a
bit of unpredictability. You can't be sure exactly what move chessbot will
pick, but you can often guess. And it just might be the move you really wanted to make! So you have to
get a bit creative and improvise a bit more.
And you can try to take advantage, too. For example, you can
often place a piece where you normally never would, since it would just be taken
immediately...
Chess(NoAI) is almost ready to release. I'll probably make it go live this week.
You won't need to upgrade your client. It will just magically show up in your Select Game screen.
Nextly, I started working on Reversi.
Here's a work-in-progress screenshot:
It's coming along pretty well so far. I'd guess I'm halfway to playable at this point. I was able
to reuse some of the code for Checkers and Chess
which made it a lot easier to get started this time.
|
linkme |
| | |
previous articles
| | |
|
for posts
for comments
|