Share your Gravestone page, including a screenshot of your journey, via twitter using the #ananias18 and #roguelike hashtags. (See here for a Gravestone page)
You are also encouraged to share it on reddit but it’s not required
You can submit your character any time before October 7, 4PM PST
Participate playing in any valid official 2.4.4 version of the game, including Android, iOS, Steam and Web. No Fellowship Edition required.
You can also participate playing in person in the Roguelike Arcade at the Celebration (but it’s not required)
Winners will be picked based on the standard scoring criteria (depth level, then kills)
You can use any class / pet combo
Money Prizes to be awarded via Paypal
Ananias Box and Manual – No diskette
T-Shirts available in limited sizes – To be awarded as available.
Sticker set will contain assorted characters as available.
Physical prizes will be delivered in person at the Roguelike Celebration on Sunday October 7. If you are not attending then they will be sent to you for an additional Shipping cost to be paid via paypal.
How can I get the gravestone page for my character?
Just create an account in the game, and then when your character dies or ascends use the “Gravestone” button
I wasn’t really sure what to do, I actually was wondering if I was going to be able to participate at all, but the weeks before coding I toyed in my head with several different ideas… one of them would be a mobile entry based on my Energy Radar project (which is inspired by Pokemon Go), running completely offline but allowing players to interact and capture monsters as a team. I decided against it because of it being maybe too big in scale.
Another one would have been an offline life simulator, someone living on the forest, fishing, something more of an experience than a game since there would be little stress, this would have been more heavy on the graphical side so I abandoned it (more so as the deadline was getting closer)
Finally, had an idea of a non-linear “Space shooter”, keeping some of the Energy Radar ideas on offline interactivity, players could fly from planet to planet; once in a planet, they would input a code from another player on the same planet, which would allow them to advance on the plot.
Knowing that I may very well wound up doing something completely different, but I had to start somewhere, I went with this idea.
At first, I tried to use source from Lost in Asterion (my js13k from 2017), but lost a lot of time. I went instead with a fresh copy of js13k boilerplate. I modified the example and was able to have a static starfield in little time.
Since this was going to be a non linear shooter, and I thought having a “lerping” camera effect would be cool, I invested a lot of time trying to make the “camera” work (again, based on Lost in Asterion). It worked, almost, since I wasn’t really tweening it but rather handling it as an object on-screen with acceleration and position, so it was hard to make it “stick” to the player once it reached him.
I also added simple keyboard input to move the “ship” around, and with the camera following it, it was a rudimentary space scene.
After giving it some thought in my head, and reading my postmortem from 2017, I decided to go on a different route. I would instead focus on making a simple arcade game, and use the 13K to add as much eye and ear candy as possible.
I ditched all the work that I had done in the camera since it was now going to be a linear game (and it wasn’t really working very well)
With a more clear vision of what the game was to be about, I implemented a lot of things,
Collisions between player and enemies.
Bullets killing enemies, increasing the player score.
Removing mobs when out of the screen (stars, enemies, bullets).
“Serial rendering” of mobs allowing potential complex representations.
Render score with LCD like display.
Since I needed something to test my “rendering” system, I decided to design the player ship, I based myself on the ship from the original ArcherFire made in QBasic in 2002.
Doing vectorial art, however, is something I don’t have any experience with. I can do _some_ pixel art, but this is a different beast. Plus I had to manually input the sequence of commands to draw each shape. I did the best I could with the little time I had.
In the end, this design is represented as follows in the code:
(Note that this is meant to be only half of the ship, the other half is drawn mirrored)
Since I was already drawing a scaled version of it, I figured I’d try to include a practical 3d looking effect when turning the ship, it did look pretty good.
Tried to build the game by the end of the day to see how I was doing with the size but found out there was a problem with uglify which didn’t let me thru.
Since I was no longer going for the “offline social” component, I wondered how to incorporate the theme. One obvious option was to provide hotseat multiplayer, and I ended up adding that.
Made enemies being able to shoot at the nearest player, and added the infrastructure to be able to create enemies given a set of parameters. Also added enemies cruising from left to right of the screen, and platforms with 4 mounted turrets.
Added explosion effects, since I didn’t have any tweening library and the rendering was being done manually, had to implement the explosion animation by drawing an expanding circle which would them be “hollowed” when dissipating. Drawing a “hollow” circle in canvas context2d was not as easy as I thought! I ended up using a weird trick to compose the path to fill: Draw the outer circle clockwise and the inner one counter-clockwise. I still don’t understand how that worked.
For SFX, I included again the good old trusty jsfxr. It keeps being useful even after years of not being updated. I added sounds for the explosions and the firing of bullets.
I saw that I still had plenty of space left so I began wondering how to include music. I tried minimusic, set it up and made it work inside the game with a test melody, but was unable to come up with anything half decent (guess why, I’m not a musician!). I left it there, asking a friend to see if he could maybe device something out of it.
Also designed one of the enemy ships (again based on ArcherFire 2002). I tried to implement some way to “rotate” its rendering but after spending some time on it gave up.
Finally, I added one first version of the “wave generator”, that is the thing that puts up new enemies on the stage as the player goes thru. After putting that I found myself with a rudimentary but complete game that someone might even enjoy!
Journey onward to Day 4 and 5, and then a detailed rundown of the game’s structure and some conclusions and thoughts!
The Roguelike Celebration is happening again this year, October 6 and 7. I will be flying to SanFran to assist and also give a talk about the History of Roguelikes.
Had an idea running on my head for a while to make a “trailer” for the event (no one asked me for it). At first, I thought of creating a playable classic roguelike using my JSRL roguelike template. I actually did create the foundations for it (as in walk in a predefined map), but it lacked the cinematic potential for a short trailer. In any case, I integrated the “torch” effect from the unicodetiles.js example into JSRL, which may be useful. You can check out the integration here.
Then I had another idea and I just couldn’t be at peace until I implemented it. I think it occurred to me a day while driving and listening to the Mega Man III OST. I thought I had found the perfect tune for it. So, even in a busy week with lots of work, I just had to do it.
The trailer features the awesome speakers’ lineup in a “robot-masters” NES Megaman stage selected style.
Of course, there’s little structure to the project since it was meant to be a quick job (and is also pretty simple). Most of the relevant logic can be found in a single Object, the Game state. I set up a stage with a black background and the gray strip, as well a Sprite object for the character and 4 text fields. I used a Megaman 10 font (I had found another one for Megaman 2 but for some reason, it could not be loaded as a web font), I performed a simple centering function based on each line’s character count to keep the characters as sprites in the grid (thus getting a bit close to being a NES “background sprite”?).
There was also a simple “particle” animation in the background, instead of stars they were small @ signs because, you know, roguelike. I used the same color palette used on the Roguelike Celebration logo for them.
Of course, the most fun part was doing the pixel art for the speakers. I used a bunch of Mega Man 2 robot masters as a base and then I proceeded on tweaking them for each speaker. The ones I know in person where easier, for the others I had to do a bit of stalki Internet research, I hope I managed to capture their likeness.
Finally, I reused the “Retro TV with scanlines” from Cat Cafe.
“Interaction” is a video game development meetup. They organize conferences in Medellín (my hometown) where they invite local developers to share their experience with both fellow and wannabe developers.
They are now an official Unity User Group, and they are planning to create bigger and better events. Interaction++ 2018.4 was the first of these events, where they had three talks instead of a single one as usual.
The first talk, “Introduction to Indie Marketing”, was given by Jorge Castaño of Amazing Soul games. It was an ambitious talk and it went well over its time limit, but it was pretty interesting.
Its first topic, foundations of marketing, gave an overview of some elements involved in the marketing of the game along with some useful tips:
Create a compelling synopsis/summary to convert visits into installs.
Have at hand your Unique Selling Points: What makes your game different. This may help change a first negative / neutral perception and make the player give a second chance to your game.
The biggest markets like Steam, Play Store and AppStore are extremely competitive and it’s extremely hard to be noticed, smaller stores can even provide help with marketing.
China is a very attractive market for mobile but the AppStore and Play Store are dead there. Tencent is the biggest store, but rules are different.
A clear target market is a must to create an effective marketing campaign.
Set a target to be in the top 200 of the store (it’s impossible to get to top 10 without +100.000USD daily marketing or a lot of luck)
A great target for a small company is 5000 USD / day for 1 month. It should cover the investment in the game.
They also dug into some of the tasks of a publisher:
Localization (not only language but also cultural) can drive a lot of installs. For example, Games in China must be properly localized, and including Dragons as enemies into the game may be perceived as offensive. For Japan, 80% of the players will only play the game if it’s in Japanese.
Customer Care: Retention, especially important for freemium games in mobile. Some publishers provide a support team.
Acquisition: It’s only part of the publisher task. Invest money to get more players.
Marketing: Material such as trailers, icons, screenshots, they often have a specialized team.
QA / Testing
Monetization: Make the game make money.
They also had some recommendations for Indie Publishers:
Adult Swim Games
Publishers will normally take 30% to 60% of revenue, and it’s currently hard for them to give money upfront.
Some advantages of using a Publisher:
Better distribution channels
They have useful contacts with the industry
Cross promotion, they will leverage players in existing games.
They assume part of the risk of investment
Years of experience.
If you don’t have a publisher, you must cover all the above by yourself to a certain degree.
This includes creating a marketing campaign to generate interest of the game even before it is launched.
Some things that help here:
Create a plan for your campaign with weekly goals and channels to be used every week.
Use analytics to update your plan. What is working and what is not.
Make a list of the websites, streamers or youtubers you want to cover your game. Start with the smaller ones, that will eventually bring interest to the mid-sized and the bigger ones if you are lucky.
Create a presentation template to get in contact with writers
Sucess doesn’t depend on money alone, being aware of all the different tools at hand helps greatly.
In the second talk the guys from Dreamhouse Studios shared their experiences building three VR products:
A training program for the Colombian Army FLIR program. (Infrared scanning)
A multiplayer tower defense Halloween game.
A training program for the local tram system
They mentioned their second game has provided them with some cash flow by renting it to be used in malls and events in the city. They shared some details of their development process.
Finally, the third talk was about the upcoming optimizations to appear on Unity to leverage on its Entity Component System to increase its performance greatly. This, in order to allow Unity games to run in lower-end devices, as well as extending its capabilities to manage a LOT of objects moving and interacting on screen.
All in all, I recommend their conferences especially to students or people looking forward to starting into the video game development industry.
Another year, another 7DRL. 14 of them now. Play it now here!
You are a Real State agent who visits an old abandoned mansion to assess its market value and put it on sale, but when you are inside, checking some of its ancient artifacts, you pass out and wake up in a room…. what surprises await for you in the mansion? Every time you play there will be a new adventure!
Design, Code and Integration by Santiago Zapata
Game Art by Giovanny Ramirez
Cutscenes by Bombillo Amarillo
Ambient Music and Sound Effects by Ashton Morris
I was only able to fit less than 2 hours on the final day (!). During the day I precompiled the list of things to be done in my head, to make the most of out the limited time I knew I would have. Here’s what I did during that final push:
Integrate the walking animation for the main character (!)
Add ambient music
Add doors opening SFX
Add intro sequence
Add endgame image and logic control.
Add losing condition (time limit, 20 minutes)
Fix issue with conflicting camera fades
As you can see, all of it was polishing, no new game content but I think it was worth it to provide a better end product.
I’m happy with the results this time. Following are the things I wish I could have included:
Slightly more elaborate puzzles: I wasn’t aiming for very complex puzzles, but hoped for more than just keys + doors.
Descriptions for objects in the mansion, including tying them to the (generated) history of the inhabitants.
More furniture and room types: Especially the beds, bathtubs, toilets and dining tables. I got some of them from Giovanny late on Sunday but it was too late to include.
A real mansion layout generator: A higher level generator which could decide the room types and positioning based on a general mansion pattern. (Sadly, right now rooms types are just randomly chosen).
Footsteps SFX: Time was running out and I couldn’t figure out a 5 minutes solution for this so had to leave it out.
Rooms of variable size with scrolling: Will probably require some tweaking to the engine since som many things are tied to the fixed size (had to do it because of the jam constraints)
Animations of the character walking up and down and a better walking animation.
On the other hand, this is a list of things I was very happy to achieve:
Setting the mood of the game, with the in-game art and the color palettes, as well as the awesome ambient track and SFXs and the intro scenes.
The engine for mansion exploration including item management (sadly couldn’t exploit it more)
The mansion layout generator, and tying it the engine which included transforming the 2D map into a logic structure.
The room generator which managed to create somewhat believable mansion rooms (and was pretty polished)
So far, only a couple bugs have been reported (and none of them seems to be a extreme blocker) which is good:
Sometimes you can escape the boundaries of reality and walk thru the background of the room
In some contexts, the game runs too slow. (Still trying to find out the causes)
I consider this is a complete game (go ahead and try to escape the mansion!), however I believe there’s potential to continue working on it. Here are some ideas I’m thinking on working on besides the ones already mentioned above (I’ll likely write a longer post about it in the future):
Getting close to a playable game, at least now you can roam the mansion and your advance will be restricted by locked doors for which you have to find a key. With some more efort we will have a basic game.
Coded the transformation of dungeon rooms into mansion rooms, effectively integrating the random layout generator into the engine.
Modified the Dungeon builder to generate sections separated by locked doors, and placing keys for the player to find, ensuring it’s solvable.
Splitting the mansion into sections, while not “realistic”, makes for a more interesting scenario given the time limitations. (Else there may be places worthless to explore, and determining the winning condition would be harder)
While on a boring adults’ assembly, started thinking on the theming of the rooms, based on the list of objects at hand. Ended up with some room type definitions
Used this to select the floor and wall types for rooms (as well as persisting the color selection).
Started integrating the content into the rooms, starting with some floor and wall decoration.
However, on the art side, Ashton sent a cool sounding ambient track as well as a pack of eerie SFX.
And we also had advancement from Giovanny who created 40 different objects to populate the mansion.
I also contacted some old friends who made the art of Ancient Shadows, and they agreed I could use some of it on this project, I’m thinking on using them for a kind of intro sequence.
Finally, even tho I couldn’t code, I thought a lot on the theme and general structure for the game as well as the main character. Here’s the first draft, a summary of what the game is about:
You are a boring Real State agent who visits this old abandoned mansion to assess its market value and put it on sale, but when you are inside it, checking some of its ancient artifacts, you pass out and wake up in a room. You find out you are trapped inside the mansion and begin looking for a way out, but as you do that you discover a monster is about to invade our world and the only way to stop it is by invoking an ancient ritual, whose details are scattered all around the mansion.
Of course, there’s only two days left, and I’m super tired… I’ll likely fail.