vbGore Free Online RPG Engine

Revolutionizing Visual Basic ORPG Development
It is currently Sat May 25, 2013 7:58 pm

All times are UTC - 8 hours




Post new topic Reply to topic  [ 9 posts ] 
Author Message
 Post subject: Greetings
PostPosted: Thu Aug 26, 2010 2:35 pm 
Newbie

Joined: Thu Aug 26, 2010 2:20 pm
Posts: 4
I am Leasha a graphical artist / intermediate programmer in .net, actions script 3.0, and mildly ruby

I have come here to learn how vbgore works internally and to try and implement its usability in a c# environment

Confused?


My goal with the vbgore engine is simple I wish to learn how to read this engines maps in order to use them in my c# engine I am making... This might be a dire task to try but one that will provide me with an easier approach toward making my game

I look forward to getting to know all of you as I push toward my ultimate goal


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Fri Aug 27, 2010 5:55 am 
Carmack's Pimple

Joined: Tue Dec 16, 2008 11:46 am
Posts: 63
Welcome! =D

If your working in C# then I would recommend heading over to netgore.com.

It's just like vbGORE but written in C# and SFML. It creator is Spodi who is the same creator of vbGORE.

Also Netgore has all of the features of vbGORE and more including TopDown and SideScrolling Perspectives.

I recommend that you head over there and check it out!


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Fri Aug 27, 2010 10:19 am 
Site Admin

Joined: Fri Jul 14, 2006 4:00 pm
Posts: 11230
Location: Washington
Welcome! And what Infernal Reaper said. ;)


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Fri Aug 27, 2010 4:03 pm 
Newbie

Joined: Thu Aug 26, 2010 2:20 pm
Posts: 4
yeh massive error on my behalf...

semms silly to rewrite an entire engine when theres already one out there... i meant to say C++, with openGL as the graphics engine in a windows 32 application.

Simply because i want my game to run on linux and mac without the use of wine or whatever else they need. Plus the C++ windows application will make buttons and other functions easier and from my memory of C# with XNA you can't use linked lists or binary trees. Which is another key part of what i want to overall achieve with this game.

I also want to implement the VBGore map editor for 2 reasons, 1 because it's a pre build program that works exceptionally well for the use of 2D maps. But 2 because i didn't want to overly waste time making a... well replica of the same program.


I also want to make this C++ engine so that in the future i can convert it to a 3D engine for all types of games and will hopefully in the long run be able to use it to create a full fledged 3D MMO, though i may just remake my engine (which will be used for 2D games by me) in C# XNA so i can use Maya for the modelling which can import directly into XNA. Still undecided by that.

But the main point is i wish to make a 2D engine which i can use as a base to start developing my own 2D games and possibly a free to play MMO down the line and may after a while of working out the bugs and glitches release it as open source.

If there is any advice or help you can give me in how to read or even use the VBGore maps that would be apreciated else i'll just trudge through the code line by line thill i find what im looking for... and possibly learn a thing or two about the networking side of programming.


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Sat Aug 28, 2010 12:28 am 
Site Admin

Joined: Fri Jul 14, 2006 4:00 pm
Posts: 11230
Location: Washington
Ariachan wrote:
Simply because i want my game to run on linux and mac


NetGore can run on Linux, and once SFML has better Mac support, Mac will be supported, too.

Ariachan wrote:
and from my memory of C# with XNA you can't use linked lists or binary trees.


You mean like... the primitive data structure? Linked lists are part of the .NET framework by default, and both can be implemented in most any language.

Ariachan wrote:
I also want to make this C++ engine so that in the future i can convert it to a 3D engine for all types of games and will hopefully in the long run be able to use it to create a full fledged 3D MMO


What you are describing there is going from a casual engine to a versatile commercial-quality engine. Huge differences, and pretty much are designed differently in every aspect.

Ariachan wrote:
If there is any advice or help you can give me in how to read or even use the VBGore maps that would be apreciated


What in particular do you want to know?


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Sat Aug 28, 2010 4:21 pm 
Newbie

Joined: Thu Aug 26, 2010 2:20 pm
Posts: 4
hmmm knowing that i will check out netgore too... since it's written in C# and that being the language i know the best it probably wouldn't be that hard to understand. However i don't feel that will give me the giant push i need to get over the hurdle im at now... which is going from intermediate to advanced. I don't feel like using someone else's pre built engine will do this for me. I feel that i must use this as guidance and develop a new engine for myself (and possibly other) in order to achieve this push, though that may be just me.

Linked lists and Binary trees in most languages intrigues me, if i can get OpenGl to run in the C# environment then learning C++ to the point i know C# is a little redundant. Even though C++ is the prefered language for commercial use (or so im told)

another pont to make... i'm currently learning how to use and develop with OpenGL so that's the main reason i wish to try and use it.

as for the commercial use of the engine, that doesn't overall bother me. If i have to scrap and rewrite my code over and over to get it right, so be it. I've done it many times before to "neaten" up my code in past projects and after all this is meant to challenge me to develop my skills. Though of course i only plan to make it 2D and only to a similar standard as the VBGore engine or this NetGore engine but still wish to develop it to the point (later on) that it can be used for 3D commercial games at the "flick of a switch", though that may be just a petty dream.


As for the VBGore maps, the main issue i have facing me is how it's formatted for reading and how to tell if i've reached a new section (assuming it has them). The actual reading part i should be able to handle once i have this.

I've made a "similar" concept to how the VBGore maps "are made" (in my mind) in which you have say 6 layers and all of those layers are in a new section of the text file, renamed to "*.map" (from bottom to top) and certain numbered tiles (in hex i think it was) could not be passed through by the player, instead of the VBGore version where you can just place these blockers anywhere. The tiles were held in a "WorldTexture" array which i loaded at the start of the game during the splash, same with my other libraries which i used throughout the game.

By similar i mean with layers, and blocked tiles. I had to manually sit down with about 10 pieces of paper (a cheat sheet) and write the hex for each tile i wanted in each square followed by a comma. Then had to have a ' marking the next layer when i had finished. followed by the dimensions of the map (same for every layer).

My only down side with this system was that i couldn't "see" the squares line up next to each other in a graphical display like in the VBGore one. Which is the key reason why i want to use it, instead of making my own which seems like a waste of time when this does exactly what i want, with a few added features.

Like i said though, the main issue i have is format. However any additional information that may help me will be appreciated.


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Sat Aug 28, 2010 8:53 pm 
Site Admin

Joined: Fri Jul 14, 2006 4:00 pm
Posts: 11230
Location: Washington
Ariachan wrote:
However i don't feel that will give me the giant push i need to get over the hurdle im at now... which is going from intermediate to advanced.


Ariachan wrote:
Linked lists and Binary trees in most languages intrigues me


No offense, but if you can't do just about everything there is related to linked lists and binary trees off the top of your head, you're probably not at "intermediate". There are some of the most basic data structures and should be very easy to analyze and implement even if you have never used it before.

If you want to learn more about data structures, I recommend getting a book on it. I was very happy with this book:

http://www.amazon.com/gp/product/032135 ... 8J7AJXRW2X

If you have a very strong mathematical background and are looking for something much more in-depth (and far more difficult), this is also a good book:

http://www.amazon.com/Introduction-Algo ... gy_b_img_c

Ariachan wrote:
as for the commercial use of the engine, that doesn't overall bother me. If i have to scrap and rewrite my code over and over to get it right, so be it. I've done it many times before to "neaten" up my code in past projects and after all this is meant to challenge me to develop my skills.


That is fine and all if your ultimate goal is education. For me, that was mostly the case. I made vbGORE and NetGore, but am not really that interested in my own game. Sure, it'd be fun to make a game, but its not like I am dying to make one. And that is why I made the engines - to learn. But keep in mind that, given a relatively short period of time (a few years), you can't excel in both. That is, you will have a very hard time developing a good engine and creating a game on top of it. You can put together a mediocre engine, and get a game done, but by not going back and fixing your mistakes, you greatly reduce your chance of learning how to improve your own coding.

Ariachan wrote:
As for the VBGore maps, the main issue i have facing me is how it's formatted for reading and how to tell if i've reached a new section (assuming it has them). The actual reading part i should be able to handle once i have this.


What do you mean by "a new section"? You mean a new tile? Understanding vbGORE's map files requires a basic understanding of binary and being familiar with binary I/O. If I remember correctly, vbGORE has a header that contains the map size. Each tile is, in basic, written in a fixed block. In reality, common values (such as 0 for a layer graphic, indicating no graphic on that layer) are utilized to reduce the size by using bitwise operations to read single bits at a time. This is done quite a lot in the networking, too. NetGore does the same, but in a much more elegant way since I actually wrote a BitStream class for NetGore, allowing you to do binary I/O on a bit level.


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Sun Aug 29, 2010 3:41 pm 
Newbie

Joined: Thu Aug 26, 2010 2:20 pm
Posts: 4
Spodi wrote:
Ariachan wrote:
However i don't feel that will give me the giant push i need to get over the hurdle im at now... which is going from intermediate to advanced.

Ariachan wrote:
Linked lists and Binary trees in most languages intrigues me

No offense, but if you can't do just about everything there is related to linked lists and binary trees off the top of your head, you're probably not at "intermediate".

I know how to implement and use linked lists and binary trees, well at least i think i do based off what my teacher has taught me. I only learnt them in C++ and was obviously taught wrong about their use in other languages... though actually sitting down and thinking about their structure and implementation it's seems silly that they wouldn't be accepted by at least 90% of languages.


Spodi wrote:
That is fine and all if your ultimate goal is education.

in all honesty i want to make a living out of making RPG's and one day an MMO from code i programmed myself. However, if i don't sit down and actually learn everything i possibly can about programming then i can't really achieve this goal can i?

It's a sad reality to me that i will spend possibly a good 2 - 3 years developing an engine before i can even remotely think about making money off a game that i develop. But this is my desired goal and i will stop at nothing to achieve it.

I'm currently studying programming through a college in which i've learnt about linked lists, binary trees and am currently learning about how to use OpenGL in order to break away from microsoft and allow linux and mac to run my games without outside parties and widen my base of possible users.


Spodi wrote:
What do you mean by "a new section"? You mean a new tile?

what i mean by new section is like, in my map file i had the ' character follwed by a title for that segment of the file say "layer2"

This "told" my code that the previous layer was ready to draw and begin either loading or drawing the next. (I think i used hex for the tile system because of the number and letter combinations, if i remember correctly and they were of a set length and like you said i used a few constants like 00 or something to show that there was no tile to be placed in this square)

Actually i'm fairly certain that i just loaded each layer then preceded to draw the specific area i needed at the time, based of a camera vector in XNA which tracked the player's location (world location) until it reached the edges of the map and let the player roam free until the player skipped past the middle of the screen in either X or Y.

I would continue with this concept until i reached the position which read ' SoundFiles. It would then exit the map loading code and start to load in the music file and various sounds for this map. After the music and or sound effects were loaded it would begin to load the warp positions and to which map (which was held in another array)

Again, this was done way before i knew about linked lists and various other concepts i know now. But my idea of the "networking" side of this concept would be the simple downloading of a text file whenever the client would call this map. (or i would just store the map files on the client side)


actually thinking back on how C# /XNA's "arrays" could be lengthened and shortened at the drop of a hat, i'm actually thinking they were linked lists instead of the typical array. Though this is also strengthend by the fact we used "new list"


Spodi wrote:
This is done quite a lot in the networking, too. NetGore does the same, but in a much more elegant way since I actually wrote a BitStream class for NetGore, allowing you to do binary I/O on a bit level.

I'm starting to think i should give up trying to use VBGore, or aspects of it and jump straight into NetGore and skim through the code to read how it works to get an idea of what i will need to learn in order to develop what i want. However i'm also thinking now i should take a step back and read through either one or both of those books to further understand how linked lists and binary trees are implemented and used, as well some of the other concepts i'm eager to learn about and possibly even use.

I will also admit now that my knowledge in the networking side is somewhat lacking but that will be picked up, and i will make sure of it. I don't mean to say im completely new at networking but i'm not that far from it in the long run. I do understand how a server works (in a very broad context) and how to configure a router as well as databasing and mining / warehousing but thats about where my knowledge stops. Though i have books laying around on networking which i do plan to pick up and begin reading shortly.


Top
 Profile  
 
 Post subject: Re: Greetings
PostPosted: Mon Aug 30, 2010 8:57 am 
Site Admin

Joined: Fri Jul 14, 2006 4:00 pm
Posts: 11230
Location: Washington
Quote:
actually thinking back on how C# /XNA's "arrays" could be lengthened and shortened at the drop of a hat, i'm actually thinking they were linked lists instead of the typical array. Though this is also strengthend by the fact we used "new list"


XNA doesn't have anything to do with it since it is just a layer on top of DirectX for writing managed code for graphics, input handling, audio, etc. If it was "new List" you were using, then you were using a List object, similar to a C++ Vector. Its an array, but auto-expanding. When you have to expand, new memory is allocated, the old memory is copied to the new, then the old array is freed. This differs from a linked list where, if you want to expand it, all you do is create a new object and attach it. Linked lists are O(1) to expand, arrays are O(n). But arrays are O(1) for lookups while linked lists are O(n). Both are O(n) for a linear search (obviously), but arrays benefit from cache locality while linked lists usually do not. Also, binary searches are not possible in linked lists, but they are in sorted arrays, giving you O(log n) for binary searches.


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 9 posts ] 

All times are UTC - 8 hours


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group