3D RPG engine source code for sale (Blitz3D code)

Miscellaneous Forums/General Discussion/3D RPG engine source code for sale (Blitz3D code)

Hi, I'm in need of some quick cash at the moment so I've decided to sell copies of the source code for a small, incomplete, 3D RPG engine I was developing at one point. The engine code is written in Blitz3D.

A demo version of the engine can be downloaded from: http://fizzoo.info/files/demo.zip

The big red disk in the demo demonstrates the actions that can be scripted for 3d world items (known as 'things'). Events which trigger world item scripts are: mouse-enter, mouse-exit, mouse left-click, and mouse right-click.
The blue cone nearby demonstrates selecting and deselecting a world item (left-click on it to select it; and click on it again, or on the non-interactive parts of the 3d world to deselect it). Note how you can left or right click on the game world to move the camera view around without deselecting the selected item.

Look in the INSTRUCTIONS.txt file for instructions on how to use the demo. This file will also give you a rough idea about the engine's features.

Price is $10 per copy (originally $20).

License terms are:-

---

LICENSE

You can use this source code library for any legal purpose you wish, with the following exceptions:-

1/ You can not sell, give away, or otherwise distribute this source code library, or part thereof. This condition does not apply to compiled binaries generated using this source code library - only to the source code itself.

2/ You can not use this source code library to create 'game maker' style applications or game engines. You can only use it to make games.

3/ You can use a single license for this source code library to create as many separate and distinct products as you wish. Each partner member of a development team using this source code library will need to own a separate license for the library, however (employees and contractors are excluded from this requirement). Alternatively, a single license can be purchased for use with a single, specific development project (in this case the license is owned by the project as a whole, rather than by any specific developer on that project - and that license can only be used with that project, and can not be re-used on any other project).

---

The code needs more work to get it to the point of making a game with it, but for the equivalent of around two hours pay it will give anyone who buys it a huge head start on making an RPG style game. I spent a great deal of time fiddling around getting things working exactly the way they should be - something anyone starting from scratch without this library would need to do for themselves. A lot of this stuff is nowhere near as easy to do as it may seem to be at first glance.

I didn't originally intend to sell this as source code, so there's no real documentation included. Many of the functions are commented, however. Anyone buying this will need to nut out how it works from the source code (which is reasonably well organized). I also don't currently plan on providing any ongoing support (I may end up doing so, but I'm not making any promises or giving any guarantees that this will be the case). If this is an issue for you - don't buy it.

Note that a lot of the code was experimental, and for future development I would probably be inclined to do some things differently. I don't even remember half the stuff I put in there.

The RPG engine uses the original Blitz Virtual Machine (BVM) for scripting. You will need to own a BVM license if you wish to use BVM with the engine (I won't be providing a BVM license with this code library). The code could easily be modified to use the newer BriskVM 2 script engine. The BVM website is at: http://www.koriolis-fx.com/

A basic 2D GUI system is included. This includes dragable windows that can be minimized to their titlebar; text buttons; image buttons; text labels; mouseover tooltips; etc. GUI gadgets can also be placed directly onto the screen - without the need for a window.

The engine also includes an inventory window and an action bar. Item icons can be picked up and dropped, and can fire off a scriptable action when left or right clicked (with separate actions for each button).

The engine uses World of Warcraft style third person camera and movement controls. If you've played WoW then you'll be immediately familiar with these controls. I've also added a key which will turn the player's character to face the camera direction (something I always wanted to have in WoW).

3D world entities can also be set to be interactive. Each interactive world entity can have four scripts that can be called when a mouse event occurs. One when the mousepointer is over the entity (mouse-enter). One when the mousepointer is no longer over the entity (mouse-exit). One when the entity is left clicked on. And one when the entity is right clicked on. Interactive world entities are fullbright highlighted when they are mouseovered, in the same fashion as WoW. There is also a selection system for interactive entities, which can be controlled via scripting. A selected entity can be set to display a selection ring around it's base.

World loading is achieved using scripting. Many helper functions are included for loading and setting up common world elements, such as skyboxes.

The lib includes a system for managing customizable hotkeys - including special key combinations (shift, control, alt). There is currently no GUI interface to allow an end user to customize their hotkey preferences, though, but it wouldn't be hard to add one.

The lib also includes a system for loading and saving preference files.

The engine doesn't include support for game characters other than the player's character. It will be up to anyone purchasing it to add their own character system, if they need one.

There's a lot of stuff in there that's untested; such as inventory item usage cooldowns, inventory item stacking, scripted inventory item actions triggered by left or right clicks, etc.

I don't know how long I will be selling this for. I wouldn't be selling it now if I wasn't short on cash. If you want it, then grab it now - as it probably won't be available later.

Remember that this code is incomplete, undocumented, and I don't currently plan on providing support for it. If this is an issue for you - don't buy it. Obviously if it was in a more complete state, I'd be charging a lot more for it.

In the event that I do decide to develop this code library further and sell it in a more complete state; then anyone purchasing a license to this version will also get a free license to the commercial version (which will likely cost a great deal more).

---

If you'd like to purchase this RPG engine source code library, then just send USD $10 via Paypal to my Paypal email address - billmail@... . In the Paypal details textbox, include the text 'RPG engine source code library' along with the email address you want me to send the code library to.

Good luck selling this to programmers.

...It's a source code library. Who else am I going to sell it to - plumbers?

heh good comeback :D

reading....

edit:
Im sure this will be useful to someone. If you can document and comment it properly it will probably sell. I might be interested myself if it was bmax but i am not starting any -new- b3d projects.


...It's a source code library. Who else am I going to sell it to - plumbers?



Im guessing people on here who may struggle with this kind of thing and like a kind of framework to start with.

$20 seems a bit steep though with no full support, clean or fully commented code but hey it's down to you. It's not something im personally interested in but good luck selling it.

How many lines of code?

$20 seems a bit steep though with no full support, clean or fully commented code but hey it's down to you. It's not something im personally interested in but good luck selling it.


I should hire you to do some coding for me sometime if you think $20 is steep for this much work. If you don't get it from Bill, you're going to do it yourself and you would have to value your time at practically nothing to think that was a good deal. If I look around for students and people or Eastern Europe, Far East, etc, I can maybe get an hour of work for that, whereas I might get 30 minutes anywhere else. I'd be very impressed by anyone who could write what Bill's written in less than half an hour.

This community never ceases to amuse me though. $20 on pizza and drinks? No problem. $20 for a movie and popcorn? Sure. $20 to save you several months of coding? That's a bit steep!

[snip!]to save you several months of coding?

Several months? Have you looked at the demo? I'm pretty sure reading through his "incomplete, undocumented" code (that he will not support), and understanding it would take me more time than rewriting it.
There's a whole world of difference between this and a full fledged library.

I'm pretty sure reading through his "incomplete, undocumented" code (that he will not support), and understanding it would take me more time than rewriting it.

Then don't buy it. Not everyone here is a professional developer by day. Many people are lucky to find a few hours on weekends to program. Many people here simply aren't capable of writing this themselves. How many times do you see those people begging for source code to learn from? Even if they end up learning from it and then rewriting it themselves, it's been more than worth $20 to them. People need to learn that some things can be good for some people and not for others without immediately feeling the need to launch an attack because it's no use to them.

I think what kills it is that the demo looks terrible. Sorry, it does. It looks like some of the stuff that came with blitz.

If you want to sell it, I would make a demo that showcases the features in your code. People aren't going to buy it on faith. They want to see the features in action. From what I can see, I don't see anything there that couldn't be done from scratch in a short amount of time, but there may be a lot of stuff you've made that just isn't seen in the demo.

As for the price, $20 is cheap, but then again, if the code is useless you just lost $20.

Hi, I've dropped the price on this lib to $10.

I'll also give away a free review copy to a reputable member of this community in return for an honest review (bearing in mind the state of the code, documentation, etc, as mentioned in my first post). The reviewer will need to have Blitz3D and Blitz Virtual Machine (the original), and be proficient with both products. Stick your hand up if you want a review copy.

How many lines of code?


Too many to count manually, and spread over too many include files. I'll see if I can knock up a program to do it. I've got some code I could adapt for the purpose.

I'll see about knocking together a demo that demonstrates the functionality of the lib a bit better, too.

I took the plunge. I'll try it out when I get it and let you know what I think. :)

I'm getting "not enough parameters" on line 157 of items.bb. Am I doing something wrong?

...It's a source code library. Who else am I going to sell it to - plumbers?

Hey I'm a heating engineer (posh name for a plumber) and do programming for a hobby.

@iamdaman13

Line 157 is a comment line, so the problem probably lies with the next line:-

class\script_module = BVM_CompileFile( name$ + ".bbs", G_script_command_set, name$ + ".bbm" )

Which contains a function call to 'BVM_CompileFile', a Blitz Virtual Machine DLL function (found in the 'BlitzVirtualMachine.decls' file in the Blitz3D userlibs folder).

The declaration for that function is:-

BVM_CompileFile%(sourceFileName$,hCmdSet%,moduleFileName$)

So your best bet is to check if the line is the same in the decls file you have for BVM. If it's different, then you may have a different version of BVM to the one I have.

I just compiled and ran the RPG code and didn't get any errors, so presumably the problem doesn't lie with the code itself.

Ok, I see. I have BriskVM 2.3, and the dll with it is briskvm.dll and the decl file shows a declaration BVM_CompileFile%(sourceFileName$,hCmdSet%,moduleFileName$,flags%), so it looks like the new version is asking for an extra parameter. I'll ask the author of bvm if I can still get a copy of the original bvm. Thanks!

it's not too hard to upgrade the code from bvm1 to briskvm 2, better to do that than going backwards. Just a few parameters are added/removed from functions and maybe a few other things but nothing too major.

It's just that it's not my code and I don't want to make changes to it that may render one or more of the source files inopperable, as there are several source files and there are probably several function calls that I would have to change over from bvm1 to bvm2, and the functions that say that I'm using too many parameters, I wouldn't know what to do with the extra parameter to make sure it's accounted for.

Seing the demo, I cant think one reason to call it an "RPG engine"; It's more like a 2D GUI - since you don't have NPC controls, You cant use anything on your inventory anywhere, neither pickup, move or drop objects; there's no conversation routines (or anyone to talk to) - it's just a 2D GUI with some windows here and there, and some mouse/3D object collision (which can be done with a simple camerapick).

So - judging by the demo - you don't have a finished object/inventory system, a NPC system, a talk system, an enemy system, a fight system, a shop system, a "player attributes" system, a magic system, a weapons system... it's a long way to become an RPG engine.

Worth the $10? I don't know, maybe it is for the 2D stuff - but for sure I wouldnt call it an RPG engine =P~

Probably time I pulled my finger out and upgraded to the newer BriskVM 2. I'll get that sorted out and re-send the source to all who purchased the lib.

Bear in mind, though, this is a source code library. You'll need to modify the code heavily to make a game out of it.

I'll see about marking out the bits of the code to separate the parts that can/should be modified, from those that should be left alone. Some parts of the code need to be modified to make a specific game out of them, others probably need to be reworked (the way map specific scripts tie in together, for example), and other bits are so tight you could play a tune on them. The later shouldn't be modified, as I've done a lot of tweaking to get them exactly right.

I got ahold of the BVM 1 dlls and decls and now the code works great! I like the camera controls and the fact that it autoadjusts when close to a wall. I am going to fiddle with the physics code a little so my characters are jumping up 90 degree walls. :)
Thanks!

Ok, so far I've made a world for my character to walk around in and tweaked the jump physics, but I can't figure out how to sync up my character's animation frames, as it's walking frames are different than the mario example's. Where do I look to set up my character's walk frames and speed, or do I need to create a module to do that myself?
By the way, thanks, I'm having fun with this code!

I figured it out, but only with b3d files, I've always had trouble getting .x files to animate in blitz. :)

Here is my review for this engine (not for a review copy, just for the sake of writing a review :) (Please let me know if you want this post removed)

My thoughts on the 3D RPG Engine Source Code for Blitz3D: After playing around with the code and figuring out how most of it works, which wasn't very difficult, I found quite a bit of useful concepts that aid me in a project I've been working on. The camera controls were useful to me, and seem to work well for me for the most part, although I needed to make some tweaks to them to make sure they don't zoom into the player when walking under a platform. The walk animation for the sample character was the model's only animation, so I also needed to make some tweaks to extract frames of animation from my milkshape models for different actions, but that wasn't difficult and the engine provided the base for animating while walking which helped greatly. The code isn't completely documented, but it's pretty easy to figure out what everything does. I did find that the jump physics are a little funny because I can continuously jump against a 90 degree wall and effectively jump up the side of a building. This can also be easily fixed with a tweak. The inventory handling is useful, although a few lines can be added to make sure the user can't assign the same item to multiple quickslots. The gui features are basic, but useful. All in all, I have a good start here for making a 3rd person rpg. Of course you will need to program things such as npcs and the like. In my opinion, it's a great starter package for the price, provided you have the original BVM (not 2 or recent as of current) dll and decl. I will need to create a wysiwyg method of laying out maps and placing my 3dgs-made buildings, items, ect. Overall, I'm satisfied with my purchase.

Thanks,
Joe

Thanks for the review, iamdaman13. I'm glad to hear you're having fun with the codelib.

If you want to post up any demos or screenshots of what you're working on with it, feel free to do so.

I haven't yet heard anything back from Korolis about the free upgrade from BVM to BriskVM 2 he offered at one point, so I haven't had the chance to integrate BriskVM 2. I'll probably end up buying BriskVM 2, but I can't afford the piddling amount it costs at the moment (which goes to show how broke I am).

I am in need of a framework like yours....I cant get access to the demo but could you please let me know how I can get it.

I am working on a 3D MMORPG and I want a chase camera and funcionality like your engine :)

I've set up a download for the demo at: http://fizzoo.info/files/demo.zip

The price for the source code is $10. If you'd like to purchase it, you can get in touch with me at: billmail@...

That's also my Paypal email, so if you'd like to purchase it straightaway, Paypal me the $10 and send me an email to let me know that you've paid and which email address you want the source code files sent to.