Project: Sherlock – Dev Log 3 (Sprint 8 and Sprint 9)

September 5, 2018 at 6:25 pm (Game Development, Games, Java, JavaScript, Processing, Programming, Video games) (, )


I’ve recently concluded the 8th milestone for my game project. It’s still an untitled game but is codenamed “Sherlock”. I don’t think this milestone is really worth making a full video for, but here is a list of features that were completed.

 

Sprint 8

-New shader effects for displacement and colour desaturization
-New floor detail art (blood pools, etc)
-Important node arrow animation
-Tons of level scripting for interactions as well as room geometry tweaking
-Support for generic, coloured boxes
-Event handler system (triggering scripts when certain things happen)
-Click on item to see description of it
-Lots of new level detail art
-Engine code refactoring

 

Sprint 9

-Music and SFX added!

-Tutorial level added

-Prep work for internal alpha demo (lots of bug fixes, creating the feedback form, and packaging up a working build)

Advertisements

Permalink Leave a Comment

Project: Sherlock – Dev Log 2 (Sprint 7)

August 25, 2018 at 10:48 am (Game Development, Games, Java, Processing, Programming, Video games) (, , , )


I’ve just posted a pair of videos showing off the new progress from Sprint 7 of the game I’m building in my spare time (progress is slow because I don’t actually have much spare time). Here are the two videos:

 

Some of the notable improvements are as follows:

  • A new anomaly object. This is shown off in the second video; it’s a ripple shader effect that warps whatever is behind it. It’ll be used for some sort of portal later on, or even just some sort of disruption. Not sure yet. I think it looks cool though.
  • Pathfinding added to the path manager. Now you can click on any node and the character will walk the whole path (instead of you having to click on the next adjacent node.
  • New character art added in. Still lots of improvements, but this is a big step.
  • New confirmation window. Asks a yes or no question and performs actions based on what the user selects.
  • New UI revamp. Cleaned up the awful placeholder UI with a nicer looking placeholder UI.
  • Hovering over a location will now highlight it, so it’s more obvious that it’s interactive.
  • Many minor improvements and tweaks to the engine code.

 

 

 

Permalink Leave a Comment

Project: Sherlock – Dev Log 1

August 18, 2018 at 4:22 pm (Game Development, Games, Graphics, Java, JavaScript, Processing, Programming, Video games) (, , , , )


This is the first dev log for a project I’ve been working on in my spare time for the past little while. What is it: it’s a game. Kind of a cross between Resident Evil (without the combat) and the overworld map from Super Mario 3. It’s built using the game engine I wrote myself several years ago. Here’s a small list of some engine details:

Game Engine Details:

  • 2D-in-3D sprite-based engine. Characters are 2D billboard sprites, while levels are 3D tiles and blocks
  • Physics engine (JBox2D)
  • Scripting engine (JavaScript)
  • Handles and organizes game and render code (Rendering uses Processing, which uses OpenGL and GLSL)
  • Level editor for building the scenes

 

So what have I done so far? Well, I’ve just finished my 6th iteration/milestone, so I’m going to take some time to work on the design and levels of the game before I implement more features (I have a big/growing list of features to work on though). Here is a brief video demo of the flow of the game at this point in time:

Here is a non-exhaustive list of the interesting stuff and features implemented for this project so far:

  • Set up a new game/app that uses my existing engine. Re-used most of my game art, etc. so I could get it together faster
  • Basic mechanics implemented:
    • Rails movement: Click on nodes to walk to that location
    • Actions: Some locations have specific actions the player can take, such as opening a door, taking an item, or searching that location.
    • Condition system: Some locations or actions have conditions (aka you need an item or to have done something). It uses a Mongo-like expression evaluation system.
  • Title screen and level select screen. Basic stuff, but had to be written
  • New game art:
    • New Character art and animation sequences. Still in progress, but right now it at least looks like a dude walking around the levels
    • New isometric pixel art for random objects in the levels. This is so the levels feel more like a world instead of an empty room
  • Task queuing system. Requirement for this type of game. You give the engine some work to do and it’ll do it in order (stuff like “move here, then play sfx, then do something else”)
  • Session auto-save system. Loads your game session when you boot up a level and manages everything you’ve done in the game (inventory, completed tasks, etc)
  • Various minor engine tweaks: Camera zoom, thicker walls, etc
  • Added a handful of levels and added a bunch of objects like wall art, desks, dressers, etc.

 

 

 

Permalink Leave a Comment

BioHive: Bioinformatics blast from the past

July 7, 2016 at 10:30 am (Computer Science, Processing, Programming) (, , , , , , , )


Lately, I’ve been combing through some of my old projects so I can index and archive them. Among these old projects was my BioHive code; a bioinformatics visualization tool I wrote years ago. It was an attempt at exploring genome comparison data sets. It was actually the first non-trivial Processing (P5) app I wrote.

Different genomes would get organized into layers (indexed using colour) and nodes would be joined together based on similarity strength. Thickness of the lines would indicate connection strength, and filters could be applied to reduce clutter. Selecting a node in a layer would show information on the genome it represented as well as the top similar genomes.

These are a few screenshots of the app. In this example, Syphilis is the point of interest and they are just different views of filtered results.

Permalink Leave a Comment

Video: Second demo for my game

April 3, 2015 at 3:38 pm (Game Development, Games, Processing, Programming, Video games) (, , , , )


I’ve finally gotten around to making a video recording of my new game demo! Part of my problem was finding a suitable video capture software suite. I ended up using Open Broadcaster Software, and it turned out fine; I WAS using KRUT, but it had issues with the audio capture.

Anyway, while recording it I ended up finding out that half of my rooms didn’t make it into the demo! I had an issue where a locked door led straight to the boss level. That kind of sucked. Here’s the video though:

Permalink 1 Comment

Update Mar 12, 2015: New game demo, mind palaces, and notebooks

March 12, 2015 at 1:29 pm (Game Development, Games, Processing, Thinking) (, , , , , , , , )


It’s been a while again since I’ve posted here, but I haven’t been idle in this period of time. I don’t think I can list all of the things I’ve been up to, but here are three things I’ve been up to:

New Game Demo

I’ve recently released (privately) a new demo for my game. It features brand new levels, mechanics, and storyline. I’ve even added new tilesets and original music for the levels. With the last demo, I was happy to have something playable that resembled a game and showed off some of the neat things I’ve built, but this time I think I’m actually content with it as a game. I’ve added some dialogue that needs a bit of polishing, but is roughly what I want it to be as well. I still need to post screenshots and a video, but I need a big chunk of time to do that still.

The first person to play-test it and give feedback made me pretty happy. It seems that they felt what I wanted them to feel and thought what I wanted them to think with respect to the storyline. They noticed some of the extra details I put into the levels (like the rain effect) as well. One thing I took away though, was that they didn’t use the camera mechanic at all. I think I might add some HUD cues and mechanics to encourage the usage of it.

 Mind Palace

I’ve been spending a considerable amount of time lately rebuilding my “Mind Palace”. This is a mental tool that utilizes the “Method of Loci” method for memorization. Essentially it’s a superior way to reliably remember things. It takes a bit of effort to set up and upkeep, but if done correctly, you can do wonderful things with it.

Before, I was building the hub structure of my palace based on something I had imagined. My problem was that I never fully constructed it; I wasn’t sure how big of a space I needed, so it deteriorated over time faster. I can still reference most of the rooms, but I didn’t solidify where everything was enough.

Also, I didn’t have enough connections to well-known places. Examples of these are houses I’ve previous lived in, These are useful as you can typically just imagine yourself moving through those places and then have your memories jump out at you. My next goal is to tie in more of those to my “hub area” so that I can jump from location to location without having to remember how many houses I’ve lived in. It probably would look like that hallway in one of the Matrix sequels that had all the doors leading to difference places.

 Notebooks

Soooo, it turns out I am a crazy person? I used to have decision issues when it would come to notebooks. I remember being in a store for 10 minutes trying to decide what colour I wanted to use for a notebook. I ended up just buying all of them so that I could decide in a non-public place. Recently, Target has gone out of business in Canada due to questionable decision making. The good part of this is that Moleskine notebooks have gone on sale; at the time I purchased them, the discount was 30% off. I rarely notice these going on sale, and since I’ve started using them almost exclusively, it seemed like a great idea! However, now I have a drawer full of different sizes of notebooks and my mind will only let me use certain notebooks for certain purposes. I’m happy to not have to go buy more for a while, but now I have to store a ton of notebooks…

 

Permalink Leave a Comment

Zombie Mansion with shaders and post-processing

January 22, 2015 at 9:03 am (Game Development, Graphics, Java, Processing) (, , )


Update: Full project description here

I finally got around to retrofitting my older projects with the new hotness. I am now rendering the scenes with shader programs, which gives me a lot of nice options for how the scenes look. I can do lots of fancy stuff with them including doing neat things to the screen after the scene has been drawn. Here’s a quick example of one of the things I’ve already tried. It’s a ripple effect I applied to the screen; it looked awful, but I was getting 60 frames per second with it (which is good).

jan17_2015_screen effect gone wrong1

Permalink Leave a Comment

Project: DarkWolf2D (2D Dungeon Crawler)

January 10, 2015 at 4:30 pm (Game Development, Games, Graphics, Java, Processing, Programming, Rant, Uncategorized, Video games) (, , , , , , , , )


Over the holidays, I had some time to upgrade the core code for my game engine. I’ve upgraded the version of Processing that I use as well, which means I can use shaders for rendering along with some of the nicer JSON loading features. While I have a “version 2” of my engine working though, I haven’t yet retro-fitted it into my Zombie Mansion yet. This is coming in the future, but for “proof” that my code works, I’ve been putting together a small game based on a design I had in a dream. It’s the “basic” version of the idea, which means no multiplayer and no nice graphics.

The idea is for a dungeon crawler action game that takes ideas from the MOBA genre. I know how it sounds, but it’s actually a very basic idea and it’s already half built. It’s a player-vs-environment game right now where the player begins at level 1 for each dungeon and has to level up as they progress to bosses. The theme for it is an alternate history WW2 where the characters are different classes such as “US Medic”, “Russian Sniper”, or “French Resistance Fighter”. Each class has a basic attack and a list of abilities they can level up and use. I’m keeping the XP system as simple as I can (although I’ve never built one before), and I’m not using any items for the game right now.

For rendering, it’s a 2D game with no character animations; just a static side-shot image. This should keep the dev cycle pretty low for now. I also have a feature backlog that I’m considering making public, but for now I’ll only do that if I have anyone comment that they actually care to look at it. It’s a list of all the features that I plan on implementing (some are basic things like “add audio to the game”, and it functions as my “todo” list. As I build in features, I mark them as “Complete” and they shuffle to the bottom of the list for storage.

Edit: Added a screenshot. It’s very basic and you can’t really see anything worthwhile. Just showing that I can at least render the player in a level. I’ll make a video later.

First screenshot of DarkWolf2D

First screenshot of DarkWolf2D

 

Permalink Leave a Comment

Markov Chains for Procedurally Generated Textures

October 22, 2014 at 5:48 pm (Computer Science, Game Development, Graphics, Processing, Programming) (, , , , , )


As anybody who’s spent time on this blog knows….well, anyway, I’ve spent a while working on my game on and off. One of the time consuming processes of this was to build textures and level details. All of the art from the screenshots was created by hand using classic MS Paint (not the new-fangled one that comes with Windows 7). One particularly tedious aspect was making bookshelf textures. I had to manual rearrange books and come up with different combinations of books that I thought would be “believable” by the player and not repetitive.

Well, here’s where my new project comes in! Last weekend I spent a few hours writing an algorithm that would generate shelves of books for me. Why is this interesting though? Couldn’t I have just randomized the books and called it a day? Well, the problem with strict randomization is that it looks ugly. It would just be a mish-mash of different coloured books, which is fine for a modern bookstore but as my game takes place in the 1920’s-1940’s, it felt more appropriate to have a bit more organization. Essentially, in older libraries you would be more likely to find books that looked similar because of binding techniques of the days. You’d also find more books that were series of something that would have the same style of cover instead of just a colourful, different cover.

The goal for this project was to generate shelves that had clusters of books. To achieve this, I used a Markov Chain algorithm that would place each book on the shelf one at a time. Depending on the book it would place, it would favour specific types of books for the next book. There is still a randomized aspect to the algorithm, but it is more constrained depending on the state.

Below is a screenshot comparing some of the results of the algorithm to a strictly randomized approach. As you can see, both are somewhat random, but the shelf on the left shows more groupings of similar books.

Procedurally generated texture comparison

Procedurally generated texture comparison

 

 

Permalink Leave a Comment

Aftermath of Zombie Mansion Alpha 1 Build

July 18, 2014 at 12:40 pm (Game Development, Games, Graphics, Java, JavaScript, Processing, Programming, Video games) (, , , , , , )


So at this point in time I’ve had multiple people play through my game demo. The results were actually better than I thought. I think only one person wasn’t able to run it (still not entire sure why, but that’s future Jake’s problem now). There were a couple major issues, but those were found and fixed as well. One of the bugs was that I didn’t include the assets for the 3D objects, so when the players entered the room with columns, the game crashed. There was also some scripting errors driven by not having necessary images wrapped up in the resources archive. Logging definitely helped out there.

The last major issue is unsolved, but lies with some code I threw together for the level selection screen. I think some of the click events aren’t going through, or it’s not loading the levels properly. I think this may have something to do with that particular tester running the game through a zip file though. I was shocked to find out that it worked period though.

I got some pretty decent feedback from one tester in particular though. He gave not only bug reports, etc, but opinions on controls, aesthetics, and game flow as well. Most of those things were explained away as “placeholder” stuff, but still; it was useful information to know what a tester/player is thinking when they see that stuff. When I show most people my game, I need comments like “looks neat and retro” or “I like the camera spin feature”, but not enough people pay attention to tiny details.

Anyway, that’s the update. I haven’t had free time to cut a second build or to work on new levels or anything.

Permalink 2 Comments

Next page »