Join us on Discord!
You can help CodeWalrus stay online by donating here.

Open World Engine for RPGs (OWERPG?)

Started by c4ooo, July 19, 2017, 09:44:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

c4ooo

I got bored so i started programming an engine for open world RPGs. (In c++ with openGL 2). The world is split into "cells"/"chunks" which are loaded/removed as you move around. Alpha-mapping is used to shade different ground textures onto the ground mesh. (the ground is a mesh, not a hightmap, to allow for more freedom.) I am also programming some sort of "construction set", which currently allows you to edit some values of the cell, adding/removing/manipulating prefabricated objects in the cell, and a utility to paint textures onto the ground.

Prefabs will range from things like rocks on the ground, to entire dungeons.

Progress:
Terrain rendering / resource management- mostly done.
Prefab rendering/manipulation - started
loading .ini files - need to start
construction set - lots of tedious work needs to still be done, but its not necessarily hard;
proper saveing/loading of cell data.
Resource manager for materials/textures/prefabs - started;
lighting - light is magical right?
physics - some progress, mostly on hold for now.

things that need to be done in feature that i haven't thought about yet:
Entity system.
Actual RPG elements like questing, etc.
Event Scripts.
Mesh editor (?!)

Pictures:

This is how the construction set looks so far: The ground repeats like that becomes i am too lazy to make proper terrain, so i just made it repeat.

Texturing the ground: (In this case removing textures.):

Added a prefab (that pink thing) to the cell: (as well as some texturing to the alpha map).

Yuki

Ooh, looks pretty nice. Gotta check this out.
  • Calculators owned: TI-83+ (dead?), Casio Prizm (also dead???)
  • Consoles, mobile devices and vintage computers owned: A lot
Read Zarmina!
YUKI-CHAAAANNNN
In the beginning there was walrii. In the end there will be walrii. All hail our supreme leader :walrii: --Snektron

if you wanna throw money at me and/or CodeWalrus monthly it's here

c4ooo

Quote from: Juju on July 20, 2017, 02:35:00 AM
Ooh, looks pretty nice. Gotta check this out.
Thanks!

I have been working on proper saveing/loading, and it works OK, except for this one bug.

A whole 'nother problem i have been having though is that even though loading from disk->ram is done in a separate thread, and thus has no effect on performance, loading ram->vram must be done on the main thread, becouse openGL is not thread safe. This causes the FPS to hiccup when new chunck need to be loaded. (I make sure to only load one new chunk into vram per frame, so its not one long frame, but rather several *longer* frames in a row. I dont know if i will have to mask the hiccups by having a few frames between each ram->vram transfer, or if some actual multi-threaded solution can be found.

c4ooo

Started working on some basic lighting:

Dream of Omnimaga

Interesting. I hope this comes to fruition, after all that work you did in learning 3D in the last year or so (remembering past WIRC discussions). What grapgical style do you plan to go with? Semi realistic? Celshaded? Etc
  • Calculators owned: TI-82 Advanced Edition Python TI-84+ TI-84+CSE TI-84+CE TI-84+CEP TI-86 TI-89T cfx-9940GT fx-7400G+ fx 1.0+ fx-9750G+ fx-9860G fx-CG10 HP 49g+ HP 39g+ HP 39gs (bricked) HP 39gII HP Prime G1 HP Prime G2 Sharp EL-9600C
  • Consoles, mobile devices and vintage computers owned: Huawei P30 Lite, Moto G 5G, Nintendo 64 (broken), Playstation, Wii U

Powered by EzPortal