Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

Noble Crusade

Sign in to follow this  


Hello everyone,

I thought I would create a new blog post starting from the beginning of development for the 2D game I'm making called Noble Crusade. It's a RPG/ARPG based on heroes, monsters, and loot.

A quick video of the current state of the game:

To say the least, I've really enjoyed developing Noble Crusade and the adventures I've had in the process. Mainly, the experience of learning and being creative. I've spent most of my early development working on the engine. Specifically, rendering and collision. There was quite a learning curve in those two areas for me, however, I learned quickly and adapted to what worked best for the game.

Here is a short video showing some of what's happening under the hood in regards to collision in Noble Crusade:

After I implemented the render and collision aspects of Noble Crusade and I felt comfortable with it, I moved into character and enemy development. I quickly arrived at another road block, animations. As I learned more about sprite sheets, textures and how to store portions of a sprite sheet (frames) in memory and manipulate them, the charactes and enemies began to come alive.

Here is a sample of a sprite sheet for Gorvok and an animation of one of his sprite sheets in action:



At this point I felt like I had a pretty solid grasp of rendering, collision, sprite sheets, textures, and animations so I moved into particles. Developing a simple particle engine was a lot of fun. I enjoyed taking what I had learned about collision and animations and I put the two together to create a basis for character spells and abilities moving forward.

Here is a video of a basic particle engine I made that is the basis for all particles and spells in Noble Crusade:

From there I was able to build enough sprites/sprite-sheets to implement a full map. I began to build maps and place sprites in 'random' locations. Enemies, trees, rocks, walls, and the player's sprites were all being placed dynamically on the map. This quickly turned into a nightmare. I liked the idea of randomly placed enemies, trees, and rocks. However, I did not like the idea of randomly placed walls. Sure, I could have created an algorithm that placed walls along the border of the map, but at that point it would have required quite a bit of refactoring to my code base. So, I realized that I could develop a seperate application where I could build maps. Which, in turn, would allow me to absract out a large portion of code related to map creation from Noble Crusade. This gave me the freedom to place walls, trees, rocks, enemies, player, etc. where I wanted. It also gave me the ability to create custom maps without having to place each wall based on a specific x, y location that was hard coded in. I could build a map in a seperate application and then export that map for Noble Crusade to load. Initially, it was quite a bit of work, but in the end it save me a lot of time and effort.

Here is a video deminstrating how the map editor/creater for Noble Crusade works:

As time permitted, I was able to implement items, inventory, UI, enemies, player, spells, and a map. Noble Crusade was coming alive and I felt it was ready for character progression. The next step, which is what I just finalized a couple of weeks ago, was to implement TCP and UDP requests for saving character data (items, xp, level, location, etc.). I could have saved the player data to a local file and load the data on start-up, but I really wanted to learn about server/application communication. I had a little bit I.T. experience so I knew the basics of TCP and UDP, but I had never implemented them in code. To make a long story short, it was another learning curve that really stretched me. In the end, I was able to implement communication from Noble Crusade to a TCP/UDP server with multiple updates/second that saves/retrieves to/from a database. It was a huge accomplishment for me and left me feeling pretty good about where Noble Crusade was at.

This brings me to the current state of Noble Crusade. I have quite a bit of plans for Noble Crusade. Which is why I wanted to start a blog here and share the future development with the community. I hope that some of you will find this blog interesting and can learn a few things with me along the way!

Some of the upcoming milestones I have for Noble Crusade are: implement boss leaderboards (web dev), in-game chat, new bosses, new maps, new unqiue relics (items), buffs/debuffs, and co-op/multi-player.

For those of you who are interested, here are a couple of additional links related to Noble Crusade:

Greenlight link: https://steamcommunity.com/sharedfiles/filedetails/?id=929121287

YouTube Channel: https://www.youtube.com/channel/UCNWG3xIctYG2WRY1_hSQ2Gw

Sign in to follow this  


Recommended Comments

Very impressive! Being a one-man team can be quite a work load (speaking from experience). What frameworks/libs - if any, did you use for the respective parts... ie. GUI, network, rendering, resource loading etc. Are you writing in C/C++? Nice post.

Share this comment

Link to comment

Very impressive! Being a one-man team can be quite a work load (speaking from experience). What frameworks/libs - if any, did you use for the respective parts... ie. GUI, network, rendering, resource loading etc. Are you writing in C/C++? Nice post.


Thank you, O-san. Indeed it is quite a bit of work, but I do enjoy it! Noble Crusade is written in C++. However, I wrote the map editor/creator in C# along with SFML.Net. The server is also written in C#.  As for libraries in Noble Crusade, I'm using SFML for managing (drawing, loading, and manipulating) sprites, textures, audio, and TCP/UDP requests. I'm also using libcurl for some initial login purposes. Everything else is done internally.

Developing, editing, and updating the GUI in C++ can be quite tedious at times. Do you have any suggestions/advice/libraries to help ease the pain managing the GUI?

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

GameDev.net is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!