Putting the 'role' back in role-playing games since 2002.
Donate to Codex
Good Old Games
  • Welcome to rpgcodex.net, a site dedicated to discussing computer based role-playing games in a free and open fashion. We're less strict than other forums, but please refer to the rules.

    "This message is awaiting moderator approval": All new users must pass through our moderation queue before they will be able to post normally. Until your account has "passed" your posts will only be visible to yourself (and moderators) until they are approved. Give us a week to get around to approving / deleting / ignoring your mundane opinion on crap before hassling us about it. Once you have passed the moderation period (think of it as a test), you will be able to post normally, just like all the other retards.

Diary of a root playing game

daivin

Novice
Joined
Dec 5, 2018
Messages
14
Location
France
Hello, i want to make an old school RPG game. Like Might'n'Magic, Eye of the Beholder and so on.

I'm opening this thread for keep my motivation at maximum a decent rate.

I'm starting from zero, with few tools and even less idea, so let's see what i can do.

The goal is to make something playable in a browser (i know all those young fellows are so lazy they cannot even unzip an archive in a temp directory). If it's funny, that would be a plus but i cannot promise.

I try and keep it simple. No Unity3D or other big things.

The dev is make under linux with (neo)vim editor, in nim language (https://nim-lang.org/). I'm using classical shell tools for managing files and sources (sed, awk, and find for retrieving lost files).

The plan is to make a local running version, with a top view (like those old roguelikes) for testing things without losing myself in those @#*$ mazes. I was considering using a terminal display (like those old roguelikes), but hey now it's 2020 2021. So i will use a SDL tile rendering for this step.

When the above seems to work (player move, collision with walls, foes encounter and fights), i will begin the web client rendering. As nim can compile to javascript, i want to keep the browser part to rendering only. The code will be written as a library, and the game can be top-view rendering (for me to debug) or old school 3D (for you to suffer).

So for the moment, what have i done ?

As i'm using Tiled (https://www.mapeditor.org/) , i wanted to serialize its json export format to one i could easily load in a nim's object. It's done. Converter is written, and the map of my (little) world is now readable in a native way in my game.

I have written a makefile for automate the tiled's map conversion to my native format. That's done too, no need to launch « by hand » the conversion each time a map changes.

And now, i'm going to write my SDL client for displaying this nice world with little tiles. But that's already another story !
 

daivin

Novice
Joined
Dec 5, 2018
Messages
14
Location
France

Because i like Nim. I don't know if it's a good reason,

It has a nice syntax and good speed.

I had thought of C + Lua, and then emscritpten for the browser conversion. But i'm a bit tired of C, and Lua is going nowhere since LuaJit (which is nice, but has fragmented the community).
 

Catacombs

Arcane
Patron
Joined
Aug 10, 2017
Messages
6,116
If you're writing a game for the browser, wouldn't it be easier to use JavaScript and the millions of libraries available?
 

daivin

Novice
Joined
Dec 5, 2018
Messages
14
Location
France
The browser is only a target. For the development, i prefer to use Nim rather than Javascript.

Writing only the client part in Javascript is perfect for me (only the rendering and I/O).
To avoid totally Javascript, i could wrap Threejs to Nim.
That's too much work for my staff (me and myself).

So the idea is to have the «engine» (the game logic) decoupled from the rendering.
It's easier for me when programming, and it permits some fantasies … like maybe running the game from a server with several people playing in the same world. Maybe one day, and probably never. At least i don't promise too much.
Anyway, that costs me nothing to do like this, except a few more work than an monolithic dev in JS would be.

Of course, i can be wrong and totally screw the thing. Time will tell, and now, time to code.
 

Catacombs

Arcane
Patron
Joined
Aug 10, 2017
Messages
6,116
Of course, i can be wrong and totally screw the thing. Time will tell, and now, time to code.
Please post development updates. I'd be curious to read about your exploits using Nim to build this thing.
 

curds

Magister
Joined
Nov 24, 2019
Messages
1,098
The goal is to make something playable in a browser (i know all those young fellows are so lazy they cannot even unzip an archive in a temp directory)
I have to say, I think you're very wrong about this. Personally, I'd much prefer to play something I could download, not in a browser.
If it's funny, that would be a plus but i cannot promise.
Funny games almost never work. Anachronox is the only "actually-funny" funny game that I'm aware of. It can really hurt a game when it's trying to be funny and failing. I think it would be better to not even try.

Other than that, I wish you luck.
 

Darth Canoli

Arcane
Joined
Jun 8, 2018
Messages
5,737
Location
Perched on a tree
Hello, i want to make an old school RPG game. Like Might'n'Magic, Eye of the Beholder and so on.

So, which one is it?
Turn-Based or Real-time?

Also, when you say you draw your inspiration from Might&Magic, are you aiming at something looking like M&M I or M&M III?


The plan is to make a local running version, with a top view (like those old roguelikes) for testing things without losing myself in those @#*$ mazes. I was considering using a terminal display (like those old roguelikes), but hey now it's 2020 2021. So i will use a SDL tile rendering for this step.

Oh wait, now it's a rogue-like?
 

daivin

Novice
Joined
Dec 5, 2018
Messages
14
Location
France
Cursed : ok, web version is not perfect (i like native versions too). But the most interesting 3D libs i have found are running into a browser (three.js, babylon.js …). And there is the problem of the OS distribution. I'm developping with linux, and multiplatform has always be a PITA.
And when i was saying « if it's funny », i should better have written « if it's interesting » instead.

Darth Canoli :it will be real-time (so not like MM , i must admit. I was thinking of the look of the game). My favourite MM is the third. And no, it's not a roguelike, i promise there will be saves and no permadeath. The top view is used by my own debug client.

Good news, i can now display the maps i create with Tiled, in my debug-top-down-à-la-roguelike-client. That's a little step for you, but … ok it's a little step for me too.

Oi1EdYg.png

But… where is the player ? Ahem… the tiles have been found on opengameart.org/
 

daivin

Novice
Joined
Dec 5, 2018
Messages
14
Location
France
An update for saying that the project is not dead. I've worked on it almost every day since the last post.

What did i do since, then ?

- I have learned a lot about Nim. Still no expert, far from it, but i feel more accustomed to it. I knew that the experience of writing « hello world » in the terminal was a bit flimsy.

- I have worked on the Tiled exporter, to add a layer of objects which contains mobs. The mobs are just roughly defined in Tiled step (with position , name, and job). Detailed characteristics will be set later at game start.
I can also define zones on the map with Tiled (with the vectorial editor on the object layer). A mob located in a zone is automatically associated to it at game start.

- I have written a lot of glue code, and a mini-gui for my debug client. For the moment, i use the gui for displaying informations about tiles and mobs located under the cursor.

- I've made some improvements on my debug client but it's for my own comfort. But my own comfort is good for you, my dear future players.

- I've thought a lot about the game data structure. A friend of mine said once « when you have defined your data structs, the game is ready ». The guy was right, for sure! I hope i won't have to break things now, i've been very carefully but you never know…

- I've made a lot of other things, but i've forgotten. I've added the project in a git repo, for avoiding forget again. And it will be easier for experiences (at least, i know how to switch and merge branches).

- Still no player ! Only mobs …

Now, i'm gonna make the little assholes moving. With no brain at first, and when it works, the goblins will learn it's best to avoid the heavy-duty guards of town. Ah yes, i should add some minimal characteristics to the mobs (you know, the intelligence/agitily/strength and so on… for the moment, they are just like discarnate souls on the map).

I hope the next update of this thread will be before spring summer.
 

As an Amazon Associate, rpgcodex.net earns from qualifying purchases.
Back
Top Bottom