[Journal] TinyDungeon

I’m doing a first person dungeon crawl. Working title: TinyDungeon

Gameplay:
Similar to old text adventures, but simpler command interface and first person view

Controls:
Left Arrow: One press rotates smoothly left 90 degrees
Right Arrow: One press rotates smoothly right 90 degrees
Up Arrow: Smoothly move forward thru portal to next cave
Down Arrow: Smoothly move backwards thru portal to previous cave
Page Up: Select previous inventory item (Alternate key TBA)
Page Down: Select next inventory item (Alternate key TBA)
Insert: Pick up item in front of you (Alternate key TBA)
Delete: Drop item in front of you (Alternate key TBA)
Space: Use currently selected inventory item on room item in front of you

Objects can be placed in the 4 cardinal directions in each cave and are drawn as overlays
Objects can be obstacles and monsters as well as treasure
Battle system needs work, but you and monsters have hit points.
The monsters are in fixed positions.

Graphics:
Caves are drawn as cylinders with a bitmap wrapped around the walls
Floors and Ceiling are drawn as an overlay.
Objects are drawn as overlays
All graphics uses .gif files which can be animated (This actually worked without any planning!)

Sound:
Not done yet. Polyphonic tone generation. Base on previous code.

Progress

  • Written automatic palette management
  • Compatible with all Graphics and Graphics2D functions [~250fps]
  • Written fast setPixel(), drawLine(), drawRect(), fillRect() [~1000fps]

To Do

  • Write fast drawImage() [Easy - actually Java2D does this pretty fast already - may not need to do this]
  • Write fast drawPolygon() [Easy]
  • Write fast fillPolygon() [Hard - but I have done this before - Do I actually need it?]
  • Write sound subsystem [Moderate as ideally I want to import MIDI files, to make composing easy]
  • Write Game [Hard - Game design is advanced, but there are some real hard bits]
  • Write Level Editor [Moderate - grid based system, fixed set of cave attributes]

Issues

  • Floors and ceilings don’t look like they are rotating due to blockiness of curved edge. I am hoping to use animation to smooth the blockiness and get the rotation feeling back
  • Forwards/Backwards movement uses zooming and is untested. There will be something of a graphical glitch during the transition between rooms, which will need lashings of secret sauce.
  • It may turn out to be too hard to do in 40x30 - Tech Demo needed
  • The gameplay needs something extra - maybe a plot with cutscenes?

Don’t expect anything for at least a few weeks!

That sounds interesting. It would be fun to see some screenshots of the progress.