7DRL with Three.js

I have been struggling with what should I create, ideas ranging from making 2.0 versions for pretty much all my previous 7DRLs, to new stuff such as espionage or pirate themed stuff. However, the thing I most wanted to get back to was playing with 3d stuff and as I’m not an artist by any stretch, I need to design in terms of what assets are freely available to me. As such, I’m going to go with the traditional approach of medieval / fantasy setting.

After about 1,5h of hacking - something on the screen.
After about 1,5h of hacking – something on the screen.

I’ve been working with Three.js graphics library before, and it shall be my weapon of choice once again. I think making the game playable in browser makes the barrier to try it so much lower that many more people will try the game, even though WebGL support is not ubiquitous. For full disclosure, I’m going to copy paste some snippets from my previous JavaScript projects which you can find here: http://tapiov.net (they are all open-source).

My 7DRL 2011, A Little Anxious When It’s Dark, was also a WebGL game, but it didn’t use Three.js and WebGL was in its infancy back then. Nevertheless, I don’t just want to create a remake, so with this new game, I’ve started with an “overworld” wilderness as pictured below. My tentative plan is to add castles and caves for the player to discover and loot. I’m also playing with the idea of turn-based local multiplayer co-op.

Sunday evening, about 5 hours of coding since the start: movable placeholder player characters with collision detection against the environment, populated by some 3d models.
Sunday evening, about 5 hours of coding since the start: movable placeholder player characters with collision detection against the environment, populated by some 3d models.

I started coding my entry at Saturday 1pm my time, but unfortunately I’ve been away most of the weekend, so not much progress has been made. I’m hopeful that I can catch up during the week though.

This year, there is also Procedural Death Jam running concurrently. I’m actually not yet certain if my entry will be a full roguelike, but as I’ve started it with more traditional design than some of my ideas, I’m going to see where the game takes me and decide later.

Law­man – Days 4&5

Progress is slow but being made. Here’s a list what’s done since last update:

  • There’s now an inventory and some functional items
  • The item system is beautiful: adding new ones is simply setting the properties for a prototype and it will then automatically show in the UI with a key help if the player has it and is able to use it currently.
  • Combat system is vastly improved, but still not good enough
  • Experience system with beginnings of character attributes and level-up screen
  • Buy menu: no shops yet but the menu is mostly working
  • Slightly improved furniture placement

Lawman – Days 2&3

Past two days I haven’t been coding as much as I’d hoped, but I have still made some progress. Since day 1, the most visible addition is the UI (pictured below), which features some stats and weapons. It’s functional, although you can’t yet buy weapons, so the inventory is hard-coded.

Another important addition is enemies and combat. It’s still very primitive and being ranged instead of melee brings a whole lot of issues that need thinking. However, it is now possible to kill bandits and die yourself.


Other things include some cosmetic changes and adding furniture to the houses (needs improvement though, and there aren’t any special places like a saloon yet). At some point I thought of actually using one of my previous 7DRLs, City of the Condemned (C++) as a starting point when I realized the town generator is going to need a whole lot of stuff that’s already in CotC. However, being playable in web browser and not particularly liking CotC’s generator code (the output I find very nice though) tipped the scale to Unicodetiles.js.

My plan for next is improve the combat mechanics and start adding important shops like a doctor’s office and a gun store. However, as I’m not a huge fan of menus, I might need to think about the implementation a bit.

Lawman Day 1

I started working on my western roguelike (name not yet finalized) at 14:55 GMT+2. Nothing terribly exciting yet, but this is what I got done during the first day:

  • Basic movement, collision detection and openable doors
  • Skeleton of a town generator
  • FOV
  • NPCs with names, basic movement and path finding
  • Day-night cycle: colors change depending on the time and NPCs go to their homes for sleep at night

Day 1

Western 7DRL

This will be my fourth 7DRLC and this time I’ve decided to create a game set into the Old West. There certainly aren’t too many roguelikes (or any games for that matter) with that theme.

In the game, you play as the sheriff of a randomly generated frontier town which will contain all the basics such as a saloon, hotel, bordello, bank and church. Player’s task is to defend the town from bandits, catch criminals etc. in randomly generated missions that appear dynamically.

This game will feature a bit deeper role-playing elements than my previous 7DRLs. Still, my main focus will be modelling a lively town to explore, and interesting, varying “quests” to accomplish.

I’ve yet to decide on the name but these are potential candidates: Sheriff, Lawman, A Town Called Mercy, A Town Called Hope. The game will be playable in a modern web browser using my own (recently updated!) Unicodetiles.js engine (that I also used last year).

If you’re interested, you can find my previous three 7DRLs by scrolling down tapiov.net

Infiniverse – Success

Infiniverse space station shops

Moments ago, I announced Infiniverse as a success in r.g.r.a. There wasn’t really time for balancing, so the game might be very hard and dull or very easy and dull. But I’m still happy about what I achieved in these 7 days. And the game is somewhat complete experience with a goal, ending, quite nice looks, and lots of places to visit.

Highlights of the last day’s development are shops in space station (pictured above) and combat AI. I’ll probably write a more detailed post-mortem later, but now I’m taking a pause from this. 🙂

Play the game online @ http://dev.infiniverse-game.com/7drl/
Or download and play offline from: https://github.com/tapio/infiniverse/zipball/7drl

The versions linked above are the challenge versions and are frozen. I shall continue development and might make radical changes such as moving to real-time in preparation of multiplayer version etc, but that won’t affect the 7drl version.


Infiniverse progress update

Infiniverse dev pic

What have I achieved since the previous update (about 1,5 days ago):

  • Square tiles – e.g. stars are now round instead of ellipses in the solar system view
  • NPCs – there are now space ships wandering in the universe, although there is no interacting with them yet (they do show up on sensors though)
  • Torpedos – can be launched and they move but targeting interface is missing
  • Early space stations – can we visited, but there’s nothing interesting there yet
  • Basic ground level generator – working, but not very interesting
  • More work on the planet aerial view generator – still not close to satisfactory 🙁
  • Sensor tweaks – contacts now sorted by distance; sensors need to be manually used and there are three working scanning modes (celestial bodies, artificial objects and combined closest ones)
  • Other UI tweaks

Less than three days left. Much work still to do.

Infiniverse.js 7DRL – Status Report

Infiniverse dev pic

My 7drl is a JavaScript/HTML5 version of Infiniverse (http://www.infiniverse-game.com/). With actual gameplay! About 2 and a half (full) days have passed and I’m making progress. I had forgotten how complex the universe generation in the old FreeBASIC version is and as such porting it has been exhaustive. I’m on the side of victory though, as I now have mostly working galaxy, starmap and solar system generators, and the basis of planet generator in place. What remains in the universe side is space stations, most of the planet aerial views as well as surface detail level.

In order to keep myself entertained (because the porting work is not always so fun), I have implemented some gameplay elements and a user interface. So almost everything you see in the picture above is actually functional (not a mock-up), and the ship can run out of energy, for example. There is even more features under several animated submenus that are closed in the image. However, it is not yet polished and will receive tweaks and additions.

Apart from finishing the universe, big features I still need to implement include: enemies and NPCs, homing torpedos and combat in general, economy (ship upgrade shopping, resource/”item” gathering and possibly trading) as well as the main quest.