Welcome, Guest. Please login or register. Did you miss your activation email?

Author Topic: Vagabond - a procedural 2D RPG  (Read 9001 times)

0 Members and 3 Guests are viewing this topic.

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Vagabond - a procedural 2D RPG
« on: June 10, 2019, 01:21:05 am »
Hi everyone,

I am Pierre, I am a user of SFML for years and love it!

For two months, I am working on a procedural world generator for a 2D RPG and I am using SFML.

The first step was to generate maps:



Then I "rasterized" the polygonal maps to obtain tiles:



And this week, I have started to procedurally place objects in the biomes:



If you want more details on the procedural generation, I wrote weekly devlogs and the series starts here.

For now, there is no game, there is only an editor which is made with Qt and I integrated SFML to make the rendering. It looks like that:



The project is still in the early stages but I plan to add dungeon/cave generation, town generation, character generation, etc. until I have a playable RPG.

If you have any question or comment, feel free!
« Last Edit: August 26, 2019, 10:14:15 pm by pvigier »

Elias Daler

  • Hero Member
  • *****
  • Posts: 599
    • View Profile
    • Blog
    • Email
Re: Vagabond - a procedural 2D RPG
« Reply #1 on: June 11, 2019, 12:58:06 pm »
Nice job, looks pretty neat.
Tomb Painter, Re:creation dev (abandoned, doing other things) | edw.is | @EliasDaler

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Re: Vagabond - a procedural 2D RPG
« Reply #2 on: June 13, 2019, 11:36:52 pm »
Thanks Elias!  :)

Nexus

  • SFML Team
  • Hero Member
  • *****
  • Posts: 6287
  • Thor Developer
    • View Profile
    • Bromeon
Re: Vagabond - a procedural 2D RPG
« Reply #3 on: June 16, 2019, 01:15:17 pm »
Looks really interesting. From your blog post, it seems like you came up with a sophisticated way of combining multiple terrain generation methods, and the results look quite cool 8) also, your editor looks highly customizable!

Thank you for sharing all the steps in detail, I might actually come back to this at some point :)
Zloxx II: action platformer
Thor Library: particle systems, animations, dot products, ...
SFML Game Development:

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Re: Vagabond - a procedural 2D RPG
« Reply #4 on: June 30, 2019, 11:08:24 pm »
Thanks! If you have any question, feel free!

Since last time, I have worked on dungeon and cave generation.

Here is an animation describing the steps of the generation:



Then I worked on generating tiles from the output of the generator:





If you are interested by the details, I have written two new devlogs: here and there.

fallahn

  • Hero Member
  • *****
  • Posts: 507
  • Buns.
    • View Profile
    • Trederia
Re: Vagabond - a procedural 2D RPG
« Reply #5 on: July 01, 2019, 04:19:36 pm »
Oh cool, this looks really interesting! I shall definitely have to read your devlogs  ;D

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Re: Vagabond - a procedural 2D RPG
« Reply #6 on: August 26, 2019, 10:13:23 pm »
Thanks!

I have continued to work on the project since last time, mostly on the game engine.

I implemented an ECS library that is available on GitHub. I also wrote two articles to describe its design, the series starts here. I have improved the code a bit since and I should write a new article.

Then, I worked on the foundations of a game engine: an input manager, a state manager, a basic render manager, etc. You can read more in this devlog. I also integrate Dear ImGui using Elias' binding.

Next, I worked on an OpenGL wrapper to be able to use floating-point textures, array textures and meshes with custom vertex definition. I was happy because everything works well with SFML graphics module. You can read some thoughts about its design here.

I used this wrapper to implement a light system, you can see some screenshots below. It is nothing as fancy as Let There Be Light but I am happy with the results and I have still some ideas to improve it. You can read more about it here.





Then, I worked on the physics system. I implemented a quadtree and shared my implementation here, the code is available there. Next, I implemented a simple physics engine that works well for 2D top-down RPG, I shared its design there.

Last week, I worked on the audio engine. It is only a thin layer above SFML audio. You can read more about it here.

Finally, this week, I have worked on the user interface. I tried several libraries and chose the one that suits my needs the best. A write-up is available here. I finally chose MyGUI and wrote a small wrapper to integrate it in SFML, it is available here.



The next steps are networking and then working on the game itself.

Daniel Schreiber Mendes

  • Newbie
  • *
  • Posts: 12
    • View Profile
    • Email
Re: Vagabond - a procedural 2D RPG
« Reply #7 on: September 01, 2019, 09:02:05 pm »
Amazing!

Hapax

  • Hero Member
  • *****
  • Posts: 3379
  • My number of posts is shown in hexadecimal.
    • View Profile
    • Links
Re: Vagabond - a procedural 2D RPG
« Reply #8 on: September 04, 2019, 12:54:33 am »
Looks really impressive. Nice work! :D
Selba Ward -SFML drawables
Cheese Map -Drawable Layered Tile Map
Kairos -Timing Library
Grambol
 *Hapaxia Links*

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Re: Vagabond - a procedural 2D RPG
« Reply #9 on: September 04, 2019, 03:34:58 pm »
Thank you very much guys!  :)

pvigier

  • Newbie
  • *
  • Posts: 17
    • View Profile
    • pvigier's blog
Re: Vagabond - a procedural 2D RPG
« Reply #10 on: November 18, 2019, 06:58:40 pm »
Quick update of my game.

I greatly improved cave generation:



I also worked on monsters, combat system and a bit on the in-game interface:



The game now has a multiplayer mode too. I wrote a guide which contains the resources I found the most useful to implement the multiplayer mode, it is available there.

If you want more info or in-game videos, you can have a look at my Twitter account or read the devlogs.

Have a nice evening!