Welcome! These forums will be deactivated by the end of this year. The conversation continues in a new morph over on Discord! Please join us there for a more active conversation and the occasional opportunity to ask developers questions directly! Go to the PS+ Discord Server.

Eclipse Phase Core Rules : Code Library (C++)

12 posts / 0 new
Last post
Klaim Klaim's picture
Eclipse Phase Core Rules : Code Library (C++)
Hi, I'm mostly a game developer and I love Eclipse Phase (even if I didn't read it all yet I've bought all the books so far). I don't have time to build a game based on Eclipse Phase at the moment, not even a little one (the rogue-like idea from the other thread about making an EP video game is very good idea to me, but I have others). But I want to do make one in few years from now (when I can). So, I was thinking that it would help almost anyone wanting to make an EP game to simply have a code base providing core rules and a bit more of the game mechanics, allowing to quickly hack by using those core rules. So I'm toying with this idea and I think I might start writing (in the coming weeks or months) a set of short libraries to provide the core rules and some helpful constructs. As I'm making games mostly in C++ I would write it in C++ as well (C++11 to be precise). A separate C API wraping this library should be possible to write to allow easy binding with other languages, but it's not my priority. Before I start, I wanted to first expose the idea here. Second, I would like to ask if you have any suggestion or remarks over the following feature list I want to implement first :
  • Constructs reprensenting morphs, egos and objects: provide attributes (traits, stats, skill lists etc.), state (a live, dead, insane, etc.) and basic manipulations (following the core rules)
  • Test functions for core rules (basic tests, opposed tests, skill tests, etc.)
  • Specific rules tests functions (certainly in separate libraries) : Combat, Hacking, Psy, Forking/Merging, etc.
  • Action-Turns sequencer : helps dividing virtual time in turns and actions etc. - with time deformation modifiers.
  • Weapon, Armors, and other objects damage calculation functions.
Also the library should allow :
  • Customized dice-rolling functions (used by test functions)
  • All rules should be configurable (because in video games you have sometimes to modify the core rules parameters to match the game feel)
  • Moxie and custom modifiers always usable for any test function
  • Very very very modular and extensible, to allow easily constructing new rules
  • Open Source (MIT or BSD or whatever)
Note : those libraries should adress only rules processing, not content, obviously. I think that if we have this, it would help a lot any game developement based on EP rules. Right? I dont' have a name yet for those libraries. So, any thoughts? Suggestions? Missing features?
The_Ren The_Ren's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
Sounds great! I've got some basic experience in C++ (EG: I know the language but I'm crap at it) and for somebody like me that would make it easy to do creative things with modules to make everything from quick and dirty little games to full blown epics. Something that I might suggest from the bottom end of the spectrum would be that you make modular "Rooms" or "Areas of Operation" that can be clunked together with little to no effort, have some context plugged into the code to allow for easy scenario building. Especially if your making just a simple text based adventure game. Something along the lines of a "room" that gives a description and an option of an exit on any of six directions (left, right, forward, backward, up and down) to the storyteller to allow or disallow with a few lines of code, or comment out that particular option. Say you want to give the player the option of going left or forward because the hall your in runs those ways at a T junction. So you comment out right, down and up allowing only back forward and left. Then you(the storyteller/GM) belt out a: [b] "The hall in front of you stretches out, curving around the station, but to your left there is a door giving access to a room labeled as "mess hall" do you choose to move forward or enter the mess hall?" Forward: Forward Mess Hall: Left [/b] Or something, depending on the feel of the piece. Just a thought. ^_^ This would also allow for people to program Module environments and add to your archive. Making it easier for some people to do their own work via having more options of stations to work from, or simply yoinking chunks of code pre-written for their own contributions. Kind of in a Minecraft like environment where you have all the building blocks and its up to you to make something fun out of it. I'd probably spend months building the environment I ran my gamers through in our last campaign. ^_^
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
Thanks The_Ren for your feedback. About your idea, that would be useful if I was making something like a game-engine for Eclipse-Phase based games, but it's not what I want to make. You see, every game "type" has a distinct structure of space that cannot be expressed in a generic form, making obsolete any temptative to produce a generic implementation of game space. For example, the game representation of space in a rogue-like game would be extremely different from an action game (that would be more precise on space and time values for example). This is game-specific, even if both game are in an Eclipse-Phase setup. The only generic code I can provide to different games is common rule set and representation of abstract concepts like stats and how to manipulate them depending on common actions. Both example games can use the same rule implementations but used with different parameters. That said, once this is setup, anyone could try to build on top of it to setup space-representation libraries for different kind of games. It's just out of the scope of my current project. Also, any suggestion for the library name?
nezumi.hebereke nezumi.hebereke's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
A friend of mine was looking at doing something similar to this, but in a more web-friendly language (I believe he mentioned javascript). This way it could work easier as a gaming tool. I don't think EP could ever work as a 'computer game', just because it requires too much help from the GM to jigger the numbers into meshing just right. However, automated GM tools are always handy.
thelabmonkey thelabmonkey's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
nezumi.hebereke wrote:
A friend of mine was looking at doing something similar to this, but in a more web-friendly language (I believe he mentioned javascript). This way it could work easier as a gaming tool. I don't think EP could ever work as a 'computer game', just because it requires too much help from the GM to jigger the numbers into meshing just right. However, automated GM tools are always handy.
I'd second this... making web/mobile apps for GMs and players seems more likely than a full on video game using EP rules. That said, however, I've been working on getting the raw data part of EP (guns, armor, morphs) into a standard, easy to access format for just such a project! Yay less work for you! http://www.eclipsephase.com/standardized-item-data-format I've been putting it into .csv format since I was mostly chopping and rearranging pieces from Kindalas' character sheet... I haven't got backgrounds yet, and am missing some description/summary metadata for armor, gear, and factions... http://itsmax.net/pub/EclipsePhase/data/
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
nezumi.hebereke wrote:
A friend of mine was looking at doing something similar to this, but in a more web-friendly language (I believe he mentioned javascript). This way it could work easier as a gaming tool. I don't think EP could ever work as a 'computer game', just because it requires too much help from the GM to jigger the numbers into meshing just right. However, automated GM tools are always handy.
First, happy new year! Second, thanks for your feedback. Your friend is obviouly free to implement the same thing for JavaScript or anything else. I've choosen C++ for several reasons, the first being that it's the most common language for my own game projects (and the one I'm the most experienced int). The second reason is that it targets native implementations for "any" device. This means it could be used on mobile, web server or other things. The third is that most languages can call C (not C++) code, so adding a C layer over a stable version of this library will alllow (in the future) to use the library with any of such languages. JavaScript is client-side web code, that is clearly separated from the machine and cannot use such library, but server-side code can. It's not at all a bad thing to do the same in JavaScript, I just believe it's more useful using C++ (with help of C). If a JavaScript equivalent was provided, it would help some people making games on web or even some game engines that require JavaScript as scripting language. As most games use native or managed code, I guess I'm filling one big area of the problem, but some other devs could do the same efforts with other areas. About making a game about EP, I think you're missing the point. Any pen&paper RPG isn't made at all to be implemented as a video game. RPG are executed only through cluster of brains, processing context via collaborative mindscape editing. That doesn't prevent D&D or ShadowRun to have games that have some of their rules based on EP. Look at Vampire games : without Vampire-specific game rules and setting, they are mostly action-rpg with lot of potential talking. Game rules (and only game rules) are simple enough in any RPG to be implemented as simple already balanced tests that a game developer (willing to make something in the EP universe-or not) could just plug in an action game to add interesting rules. As said earlier, if someone makes a roguelike in the EP universe, it will not be super-complex as EP suggest any adventure in it would be, but it will be interesting anyway. I guess. Let's think of a videogame as an RPG mastered by an AI. A "simple" one. ;) I think there is already a big potential just in the idea of allowing morph transfert. In particular in a collaborative multiplayer game...(where one of the players would help guide other players, Matrix-operator-like) Although, here the point is more to help myself and other gamedevs getting started "sowewhere" with their EP-related game dev ideas. If other can build on my stuff, it's a good thing. Otherwise, I will anyway. On a side note, that will help me remember better the rules. I'm not good with some of them so it's good to have to study them and translate them in simple "tests".
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
thelabmonkey wrote:
That said, however, I've been working on getting the raw data part of EP (guns, armor, morphs) into a standard, easy to access format for just such a project! Yay less work for you! http://www.eclipsephase.com/standardized-item-data-format I've been putting it into .csv format since I was mostly chopping and rearranging pieces from Kindalas' character sheet... I haven't got backgrounds yet, and am missing some description/summary metadata for armor, gear, and factions... http://itsmax.net/pub/EclipsePhase/data/
Well, thank you! It's not less work for me (at all) as I'm implementing rules but no data. However, it's a good completing work : Once I got rules and simple constructs providing representations of objects of the game, it then can be possible to write serialization code that will read your format to fill those constructs. And the other way around. That will fill the need for data that anyone could use as a base for implementing game infos (without resources though, only stats). I'll get back to this once I got a solid code basis. Thanks for pointing it (I was aware of it anyway :) ) ----- I've started a bit of code, I'll notice you all here once I get the source online and public, in coming days.
Quincey Forder Quincey Forder's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
A creation/management of character app would be a great idea, especially if using a data cloud that could be used from mobile devices and web browser both -Morph management -Reputation accounting -Gear 'store' imagine that you use the smartphone/pad (IOS or Android, depending on the model owned) and saving the data by cloud, so you can, at home, think clearly how to use the Rez points, then save it. the GM would get a copy of the change and a notification also a system of message picture sharing would be a good idea, to discretely send secretly done action to the GM. that's some idea that comes to mind
[center] Q U I N C E Y ^_*_^ F O R D E R [/center] Remember The Cant! [img]http://tinyurl.com/h8azy78[/img] [img]http://i249.photobucket.com/albums/gg205/tachistarfire/theeye_fanzine_us...
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
Yes, those libraries I'm beginning to hack might have really more use than I was thinking first...
thelabmonkey thelabmonkey's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
Quincey Forder wrote:
A creation/management of character app would be a great idea, especially if using a data cloud that could be used from mobile devices and web browser both -Morph management -Reputation accounting -Gear 'store' imagine that you use the smartphone/pad (IOS or Android, depending on the model owned) and saving the data by cloud, so you can, at home, think clearly how to use the Rez points, then save it. the GM would get a copy of the change and a notification also a system of message picture sharing would be a good idea, to discretely send secretly done action to the GM. that's some idea that comes to mind
This sounds awesome. Morph swapping is a big pain, even with the excell sheets available. The other big GM tool that comes to mind is a Combat tracker built with -- initiative order -- checkbox/dropdown modifier calculator -- combat skill-test rolls -- ammo tracking -- damage calculator
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
So, after a lot of thinking I will go with the name : "Eclipse Phase Game Rules", meaning the code will be in the C++ namespace "epcr". Also, I'll go with BitBucket this time for hosting the project. I'll notify here once I get everything online. (not until tomorrow I guess) Another note : I'll implement everything through C++ templates to allow developers to choose underlying numeric types. However I will provide "default" normal types that will use native integer.
Klaim Klaim's picture
Re: Eclipse Phase Core Rules : Code Library (C++)
I've setup the online repository but I will not be able to push anything until I get home (I'm at dayjob now) : https://bitbucket.org/klaim/eclipse-phase-game-rules You can follow the development there if you want. I'll setup a website later if needed, but I don't really think I'll have time, so any help is welcome.