The Journeyman

Got a project that uses Gorgon? Got some code snippets that use Gorgon in an interesting way? Got milk? Post your screenshots, descriptions, and/or code here.

Moderator: Gorgon Mods

Forum rules
Keep it on-topic and DO NOT be disrespectful of other peoples work. Criticism is fine, as long as it's constructive.

Please note that the owner(s) of this website are not responsible for the content of any files uploaded. Please use them at your own risk.

If a file contains objectionable material please pm Tape_Worm or a moderator and it will be dealt with.

Please don't post objectionable files. If you post objectionable material (i.e. porn, warez, viruses or plagiarized work) your post will be deleted and you will be banned.

The Journeyman

Postby Zeraan » Sat Feb 20, 2010 1:23 pm

Grr! I typed up a long description, but didn't save it and lost it. Remind me to type in notepad first then copy over so I don't lose information.

Anyway, due to me losing some code from upgrading my computer, I've been thinking about what I should do next. Try and redo the code, or work on a new project? If I work on a new project, it'd have to be related to what I'm trying to do for Beyond Beyaan. I decided that the X-Com aspect of Beyond Beyaan might require a lot of work, so I'll work on a new game that incorporates the same idea, but as a RPG.

A friend and I worked on one such RPG before we lost motivation for it. It was called "The Journeyman", a game where you can be whatever you want, a magician, soldier, banker, blacksmith, beggar, etc. There won't be any set "main story", rather the quests are loaded randomly from scripts, and you can choose the "story arc" for your game if you want. Each game will be different because the world would be generated randomly aka Civilization, and quests are loaded randomly. For more details, we have our website at www.explore-entertainment.com

It was going to be an isometric quasi-real time RPG (it pauses when you want to issue commands). We lost motivation because we worked on the world generation (prodecural generation) along with 3D terrain rendering for 9 months, without any actual gameplay elements.

So this time, I'm keeping it simple and 2D, and focusing on gameplay elements. I've even got the world rendering going: http://i18.photobucket.com/albums/b102/ ... neyman.jpg

When this project is done (at least playable), it will help me in my Beyond Beyaan because it will have the same engine for ground combat.
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Sun Feb 21, 2010 11:03 pm

sounds good, just curious though, what makes people use low colour images? we have the technology you know :) or is it the nostelga? If it's because you're using paint or something, try GIMP it's free. It's a little different to Photoshop, but different isn't always bad ;)
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Mon Feb 22, 2010 1:23 pm

It's because I fail hard at creating art. The Asteroids of Beyaan art wasn't done by me, it was done by others with the only exceptions being the buttons, nuke, explosions, and even then, those art sucked.

My concern right now isn't the art, it's the code. I prefer a working game that looks ugly rather than a beautiful game that don't work (the reason why we gave up on the original 3D version)
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Mon Feb 22, 2010 2:12 pm

fair enough, I guess you could always upgrade the art later.
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Mon Mar 01, 2010 12:08 am

Update!

I've successfully created a simple world generator that randomly generates the world that you will play in. When you start a new game, the world is randomly generated. It will randomly generate the terrain, then calculate likely positions for cities and towns and place them, then create roads to connect them (including bridges if possible), then generate caves/dungeons for exploration.

I've created a simple and crude triple-pass world generation. Let's say I give the world generation a world size of 10. This results in the first pass creating 10x10 random terrain points, then in the second pass, it is increased to 30x30 points, and each tile rolls a dice to determine which kind of neighboring terrain it will be (1 of 5 possible options, one for each direction, and one for the center). Then in third pass, it is increased to 90x90 (each pass will multiply by 3). Also, there are a slim chance of being a random terrain unrelated to neighboring tiles.

Here's a sample screenshot
http://i18.photobucket.com/albums/b102/ ... eyman2.jpg

That is the world view where you can move around. The previous screenshot in first post is the ground view, or in other words, up close. Each world tile correspond to 128x128 isometric tiles. You have the option to move around in world view (faster, less chance to encounter enemies) or in ground view (slower, but yields more rewards). When you go to ground view, the 128x128 will be prodecurally generated based on the world coordinates of the tile, and a set seed. So if you revisit a world tile and fight there again, the region will be the same as last time.

If the world is 90x90 tiles, that means in the ground view, it's a grand total of 11,520x11,520 tiles! The memory imprint will be small since it's mostly generated on-the-fly.

Next on agenda: Smoothing the world map so each differing terrain will have border, then having your character in the game moving around. Let me know what you think of this idea!
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby Zeraan » Mon Mar 01, 2010 12:23 am

Looking at the world maps generated by my algorithm, I feel something bothering me. It's too uniform and not varied enough, so I've tweaked the algorithm a bit. This is the result, and I think I'm done with world generation for now.

http://i18.photobucket.com/albums/b102/ ... eyman3.jpg
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby Zeraan » Mon Mar 01, 2010 7:58 pm

Yay! Borders!

http://i18.photobucket.com/albums/b102/ ... eyman4.jpg

After thinking about all the possible combinations of terrain types, and future possible terrain that I might add (ice, lava, etc), I decided the best way is when a terrain don't match the adjacent tile, it will always use grass border so it will all fit together nicely even if new terrain is added.

Next on agenda, having a playable character that can move around in both views!
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby Zeraan » Wed Mar 03, 2010 9:49 pm

I was able to add moving around in world, and drawing a simple character. But the next part took me a while to figure out. How do you convert from a straight grid to an isometric grid? When you go to ground view, it's in isometric, but it also have to match the world's terrain. Imagine zooming into the world tiles, then cutting out a diamond shape (with corners pointing in compass directions, ie, top point is pointing north), then rotate it 45 degrees, then split the diamond into rows and columns, and rendering them correctly.

i.e.

2 world tiles 0 = grass, 1 = water

0000011111 = 0000 01 1111
0000011111 = 000 0011 111
0000011111 = 00 000111 11
0000011111 = 000 0011 111
0000011111 = 0000 01 1111

And in the ground view it looks like this:

000
001
001
011
011
111

This was a bit difficult, but at last I've managed it! Then I had to fix it so the world's rendering offset matches that of the ground view. Here's screenshots! Notice, in the world view, my character is hovering over 4 different tile types, and all are drawn correctly in the ground view:

World:
http://i18.photobucket.com/albums/b102/ ... eyman5.jpg
Ground:
http://i18.photobucket.com/albums/b102/ ... eyman6.jpg

The magic formulaes are:
int x = i - (tiles.Length - 1) + ((j / 2) + j % 2);
int y = (j / 2) - i;

with tiles.Length being the width of the region view. I'm pretty proud of myself for figuring this out :) Now to add character drawing in ground view, then mouse picking tiles, then COMBAT!
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby Zeraan » Sun Mar 07, 2010 9:45 pm

For character rendering, I realized that I was doing the rendering a bit harder than I should have. Previously, it would transform a block of region into isometric, THEN render those. The problem with this is when I render a tile, if I want to render a character that's on it, I'd have to reverse the process, check that the tile is actually the same as character, then repeat the conversion to get the character drawn into the correct position.

So I changed it so it's a per-tile basis, I tell it to draw a tile from the grid, it will output in an isometric. That way if I tell a character to render at x,y tile, it will automatically convert into isometric. Took me a few days to get it right. Yeah, I'm slow :P

Now that the character is being drawn in the correct position, the next step is to get mouse picking out tiles, then adding "camera" so I can move the view around in isometric, instead of having it always centered on my character. Then a simple monster and combat system will be implemented (hopefully!)

Here's a screenshot, it's not much different from previous, but the underlying mechanisms are different, and you can see my drawing masterpiece for the main character.

http://i18.photobucket.com/albums/b102/ ... eyman7.jpg
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby Zeraan » Tue Mar 16, 2010 7:52 pm

Update! Getting mouse to pick the correct tile was a pain in the neck for me. First, I have to figure out how to convert mouse position into tile position, then I have to account for the triangles since it's not a vertical/horizontal grid. I had to divide each tile into four squares that is shared by four other tiles as well, and calculate which side the mouse is pointing at.

Once I've accomplished that, I found another problem with my character rendering. The tile highlight have two parts, one is drawn before the character, and one is drawn after. But my character is being drawn on top, so it's in the wrong tile. I had to go back and fix that. In doing so, I found another problem with the region, so I had to fix that. While I was in that part of code, I decided to add camera that can control where you're looking at in the region view.

After a few issues, I got them all working! If you move to edge of screen, it will scroll. I also added the feature of changing a tile's terrain when you click on it, to ensure that the mouse picking out tiles are working correctly. So far it's working.

Here's a screenshot!

http://i18.photobucket.com/albums/b102/ ... eyman8.jpg

So the last step before I implement monsters is pathfinding. I need to get my character moving around, so I can actually have monsters walk to my character and attack him, and vice versa. The tricky part is that it's not one grid, it's split into smaller grids, and I have to navigate through all of them to find the shortest path. I'm sure I can figure it out. I already know the A* algorithm.

I do have a question for you guys. Which one of those do you prefer?
1. Random encounters that just pop up
or
2. seeing monsters in world view chasing you, so you can have a chance to avoid them (aka Link, zelda 2 from nintendo, or Earthbound, from super nintendo)
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Tue Mar 16, 2010 11:22 pm

looking good :D as for random encounters or not-so-random. Me and my friend argue about this all the time lol, i like non-random, he likes random. But I guess it's up to what suits the game the best.
If it were me:
option 1: Battles go in to a battle-view (like Final Fantasy) and enemies just pop-up, this would be slightly easier to control from a game developers point of view. Because you can decide where battles are held. Rather then the player getting the enemy to chase them in to town or something.
option 2: Quite a lot more difficult to implement because of path-finding, etc..

good luck :)
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Wed Mar 17, 2010 8:36 am

The region view is actually the battle view. So if you encounter an enemy (or group of enemies) it will take you to the region view, and X-Com-esque battle system will occur.

Another thing, if you try to flee into a town, the enemies will follow you into the town. So if you're fleeing from a dragon into a town, the dragon can lay waste to the town if nobody is strong enough to stand up to it. But at least it'd give you some time to run and find cover :lol:

I'm leaning toward non-random system. That way, you'll feel that the world isn't empty, but full of living things. And it'll help give you the sense that world and region view is interwoven.
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Sun Mar 21, 2010 10:46 pm

sounding good :) I would suggest u use RPC, if it was finished haha ;)
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Mon Mar 22, 2010 11:01 pm

ShadowDust702 wrote:sounding good :) I would suggest u use RPC, if it was finished haha ;)


I wouldn't mind, but does it support prodecurally generated world maps? :)

On that note, when I tried to figure out how to implement pathfinding and mouse clicking handling, I realized that I've "painted" myself into a corner. When I add a new feature, I had to overhaul some section of code to make it work. So I decided to take a step back and look at how it should all logically work together. I drew out some layouts, and decided to start a new project with the same name and rename the old one to "Journeyman 3-22-10" so I can salvage the code.

This new project will be more clean and flexible. One problem was having a main function trying to handle both world and region parts. I've decided to separate the code into two primary functions, "WorldMain" where everything world-related will be handled, and "RegionMain" where everything region-related will be handled. Basically like having two projects into one. This will make things easier and cleaner. So far I've gotten the world rendering/Main function re-implemented. I hate it when you're on a roll, and then you get stuck by poor design :evil:
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Tue Mar 23, 2010 12:06 am

Yeah keeping it modular is very important for expanding on things, for example my Tilemapping system is divided in to 5 different classes; Tilemap(main), TilemapLoader, TilemapNeighborhood (allows for seamless tilemap joining, and looping), TilemapRefinement (allows for automatic edge generation), DynamicTiles (this links all the maps together, and allows for only loading stuff when it's needed). And even then, it's all split in to regions, to make stuff easy to find. There's two more classes just for the tiles as well.

As for procedurally generated world maps it does support that. To do this I'd create a base map that had the size of my generated map, say for example 256x256. Turn off optimization before loading the map (You can't change the map in the code while the map is optimized). Then run my map generating code on the map. Then tell the map to optimize by running Mapname.Optimize();

However RPC does not support isometric. And you'd have to use RPCs code editor (even though it is c#). Because it's not a library it's a full development environment.
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Tue Mar 23, 2010 8:22 am

ShadowDust702 wrote:However RPC does not support isometric. And you'd have to use RPCs code editor (even though it is c#). Because it's not a library it's a full development environment.


Code Editor? Do you mean that your RPC have code parsing feature? I'm planning on implementing scripting for AI and region generation, and possibly even world and city generation.
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Tue Mar 23, 2010 1:29 pm

Yeah, the code editor includes the limited ability to use path finding, but it's quite complicated to use that way. It's actually a separate project (although being developed alongside RPC).
It's called NeuroLogic, it's included with my test in the other thread, I'll start on documenting it when I get home from work. But basically it uses a thing called "chips" which are basically scripts with a life lol.

If you go in to the Script/Chip editor in RPC you'll get a better idea of how it works. You can also see on the map, faded out pictures of chips over some of the entities. This means that entity has a chip attached to it. You can also place chips on the map directly without attaching it to an entity.

It uses reflection and compiles at runtime.
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand

Re: The Journeyman

Postby Zeraan » Fri Apr 23, 2010 11:32 am

I basically gave up on this due to this game:

www.minecraft.com

Has everything that I planned on doing, but better and from first person. Ah well.
User avatar
Zeraan
Lowly Humans
Lowly Humans
 
Posts: 99
Joined: Mon Oct 12, 2009 11:33 pm

Re: The Journeyman

Postby ShadowDust702 » Fri Apr 23, 2010 9:22 pm

that game is fun, for a while anyways lol. btw i think the address u mean is www.minecraft.net
User avatar
ShadowDust702
Somewhat OK humans
Somewhat OK humans
 
Posts: 130
Joined: Tue Mar 10, 2009 6:13 pm
Location: Auckland, New Zealand


Return to Projects that use Gorgon

Who is online

Users browsing this forum: No registered users and 1 guest

cron