Jury's Game Thread

Game Design, Story, Game Play.
Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Jury's Game Thread

Post by Juryiel » Fri Feb 29, 2008 12:30 am

Well I decided to start one of these.

First a Recap of what I've posted!


===RECAP===

New Features: Menu System!

I decided to go with a simple classic feel for nostalgia, but I'm not done tweaking yet.

- Has 3 levels, Categories, Subcategories, and Items

- Categorizes items by type, and will display the appropriate categories

- Can get item properties of the current selected item (and any other item on the menu page) as illustrated by the descriptions

- Can scroll when the window fills!

- Can warp from one end of the list to the other

- Items that have a quantity of zero are not listed (however, I haven't tested if this works bug-free)

- Fields for gold and time have been set up but haven't been coded to work yet

Here's the vid!

http://www.prism.gatech.edu/~gtg340i/Other/Menu.avi

I think that's about it for now
Time to take a break and play some games instead of coding one, I want to finish Persona 3 first, and then I'll start on another part of the project



Old Version Features:

- Double jump! It's hard to tell he's doing it because of the video quality, but I assure you, there are two distinct jumps possible! Just two tho, until you fall. And if you fall of an edge without jumping, you only get one. Got to keep things fair!

- Levitation! You can levitate, and you will bob up and down in a nice sine wave. Also, notice how eventually the camera drops (you can't see his head!) as I posted earlier Help if you can Note that this is not a flight system, you cannot move up and down while levitating. Well, you can move down by letting go of the levitation key, and then pressing it again to only fall a short distance. This is like this by design. Flight is hard to design a game around, with all the power it gives to the player.

- Targeting system! Oh god, this seemed like an easy thing to code, but dealing with the 'boundary' conditions without a break function or a wildcard character to go with my original logic made me have to come up with workarounds that took forever to get working right... but now they are! The system basically scrolls through all enemies present on the screen, based on a number assigned to them in their szEntityName. One key goes through in increasing order and one in decreasing order. Notice that only enemies on the screen at the time are counted, and not off screen enemies.

- New camera view. I'm sure this one's been done before somewhere, but, well, I did it too You can rotate around your character, and the WASD keys always move relative to where the camera is facing, and not where your character is facing. This is typical in adventure games and action RPGs.


Additional Notes: It appears as frame rate lowers, falling speed is decreased, at least when using a scripted player and the HighLevel Jump function. I'm going to bug report this, as it is really bad. It means on slower computers the player can jump farther (yes, I tested this, by deliberately reducing my FPS to 20, and I could jump all the way across the room and then some).

Well, that's enough description, the vid is here:

http://www.prism.gatech.edu/~gtg340i/Ot ... tory_2.avi

===RECAP END===

New stuff in the following posts!

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Fri Feb 29, 2008 12:39 am

Ok I've been busy doing interviews for a while but now I'm back. I decided to find a low poly model and reskin it because although I love to do environmental and object modeling I hate doing people. Below are the before and after shots! The green ninja is the original. The red/blue guy is my skin. I know the files are called 'juryninja' etc but he's not really a ninja, more of a mysterious hero kind of guy. I'm planning for multiple classes, and this skin was designed for my sorcerer (fire based class) but I think I'm too lazy to make any more and I'll just use this for all of them ;) The model is right around 900 polys so it should run smooth.
Attachments
juryninja.jpg
(168.79 KiB) Downloaded 69 times
origninja.jpg
(144.52 KiB) Downloaded 37 times
Last edited by Juryiel on Fri Feb 29, 2008 2:58 am, edited 2 times in total.

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Fri Feb 29, 2008 12:40 am

And from the back!
Attachments
juryninjaback.jpg
(146.61 KiB) Downloaded 42 times
origninjaback.jpg
(130.65 KiB) Downloaded 25 times

User avatar
darksmaster923
Posts: 1857
Joined: Wed Jan 03, 2007 10:32 pm
Location: Huntington Beach, California, USA
Contact:

Re: Jury's Game Thread

Post by darksmaster923 » Sat Mar 01, 2008 3:31 am

that looks gud!
Herp derp.

User avatar
Sph!nx
Posts: 297
Joined: Thu Feb 22, 2007 7:26 pm

Re: Jury's Game Thread

Post by Sph!nx » Sat Mar 01, 2008 11:30 am

Indeed! I realy love the menu! The models are also very well made. Gonna follow progress on this one for sure!
Regards Sph!nx

Sven Co-op, DevEd: Development & Editing

User avatar
vrageprogrammer
Posts: 566
Joined: Wed Oct 31, 2007 2:59 pm
Location: On top of a tree
Contact:

Re: Jury's Game Thread

Post by vrageprogrammer » Sat Mar 01, 2008 1:35 pm

Cool!
It was not Possible to determine the dimensions of the image....

User avatar
jonas
Posts: 779
Joined: Tue Jul 05, 2005 5:43 pm
Location: Texas, USA
Contact:

Re: Jury's Game Thread

Post by jonas » Tue Mar 04, 2008 5:56 pm

Nice!! I really like your ninja models! Keep up the good work. :D
Jonas

Focused, hard work is the real key to success. Keep your eyes on the goal, and just keep taking the next step towards completing it. If you aren't sure which way to do something, do it both ways and see which works better. - John Carmack

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Wed Mar 05, 2008 12:18 am

Just to clarify (again :P) As I daid before, I didn't make the model itself, nor the green ninja uniform. I just reskinned it with the red/blue clothes. Glad you guys like them tho :)

User avatar
darksmaster923
Posts: 1857
Joined: Wed Jan 03, 2007 10:32 pm
Location: Huntington Beach, California, USA
Contact:

Re: Jury's Game Thread

Post by darksmaster923 » Wed Mar 05, 2008 3:51 am

but the ninja is just so awesome its incredible. so much detail....
how many polys?
Herp derp.

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Wed Mar 05, 2008 5:02 am

Just few over 900 (like 904 if I remember correctly).

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Thu Jun 05, 2008 5:37 pm

I'm back! I've been working on stuff for a while and managed to finalize the item system including using items, obtaining items, adding and removing items from the menu based on quantity, etc. Basically usable item management is pretty much as I want it to be.

I've also written a simple level-up and stats system and integrated that display into the menu system as well. I don't plan on making it more complex because I always wanted transparent player progression without having to write out the equations in a game manual.

Finally, I've also almost finished the equipment system and how it interacts with the menu and the stats system.

No screenshots unfortunately since I'm on vacation and posting from an internet cafe.

====Problems, Help if you can====
Well I'm also stuck on a problem. When I scroll, I have to update the items I display each time which means I have to update the array of visible items using a loop that goes through the entire item array to search for 30 visible items (that's how many my menu shows at a time). If the 30th visible item is near the end of the menu, however, there is a 1/2 or 1 second pause to do this loop since I have a lot of items. This is rather irritating and I can't find a solution to making it run smoothly. One thing I thought of doing is preloading all of the visible items into an array so that the loading happens when the items are first loaded but not when scrolling. This would work better, however in order to do this I need to be able to create an array of indefinite length. Is there a way to do this? I can't seem to find it. Or if there is another solution to this problem I'm having let me know.

Another problem I ran into is that if I use a lot of ShowTexts I get significant slowdown. Up to 5-6 fps for some of the ShowTexts. I was wondering if/how this can be reduced since I use a bunch of them to display menu stuff. I use up to 10 for some menu pages (all of which are needed, some of their strings max out their 256 character limit even).

Of course these are happening on an old laptop I have here on vacation and were not showing up on my more up-to-date desktop I have at home. This thing has a Radeon 7500 as a card to put things in perspective. But still I don't want my game to be inaccessible to people. I mean, the 3d stuff (one square room with 3 characters and a couple of ramps) runs at 55-60 fps on this machine so the ShowText and menu management stuff should work with high FPS right?

Finally, is there a way to disable rendering 3d work and other such things when I'm in the menu? The menu covers the entire screen and I don't need anything else working in the background. I think this will also help improve performance significantly.

Any help is appreciated, and I'll let you all see what I've done in a couple of months when I'm done vacationing :)

Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Re: Jury's Game Thread

Post by Jay » Fri Jun 06, 2008 4:51 pm

How are you organizing the items? Do you store them in player attributes? If so, make the names of the player attributes something like slot_1, slot_2...

Then you don't have to update the visible items at all. Just use a function that uses the player attributes directly. Like

Code: Select all

SCROLLNUMBER [1]

DisplayItems[ ()
{
 DisplayItem(GetAttribute("slot_" # SCROLLNUMER));
 DisplayItem(GetAttribute("slot_" # SCROLLNUMER+1));
 ...
 DisplayItem(GetAttribute("slot_" # SCROLLNUMER+31));
} ]
The SCROLLNUMER works like a pointer in C/C++.
Everyone can see the difficult, but only the wise can see the simple.
-----

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Fri Jun 06, 2008 5:50 pm

I'm storing them in player attributes but I don't want them to show up in the menu when the player doesn't have any of them.

So it's like this. I have an array Item_Array of all items which includes the name, property, quantity, and description of each item. The names and quantities are also stored as attributes, but the rest of the fields aren't since they aren't numeric and don't change through the duration of the game.

Then I loop through Item_Array to create another array VisibleItem_Array which only includes the 30 first items that have a quantity greater than zero. This loop creates a pause when some items are at the start of Item_Array and others are near the end of it.

So the problem isn't updating the numbers but instead updating which items are listed. As the player scrolls the VisibleItem_Array needs to change to display new items that weren't visible before scrolling. For example first items 0 to 30, then 2 to 32, then 4 to 34, etc. (two columns so I scroll by 2 each time).

Jay
RF Dev Team
Posts: 1232
Joined: Fri Jul 08, 2005 1:56 pm
Location: Germany

Re: Jury's Game Thread

Post by Jay » Fri Jun 06, 2008 6:21 pm

Why do you need an array that stores which items are listed? Can't you just display them directly? Then you don't have to update the array and the problem is solved. (I have probelms understanding what your problem is)

Or why are you looping through the list of all items? In Towers of Trembolon, i have an attribute that is the number of an item, and the number represents the 'type'. When i want the attributes of one item i do:

Code: Select all

GetItemStats[ (number)
{
   CUR_ITEM_NUMBER=StringCopy(number);
   CUR_ITEM_NAME=StringCopy(ITEMS_NAME[number]);
   CUR_ITEM_TYPE=StringCopy(ITEMS_TYPE[number]);
   CUR_ITEM_ATTRIB01=StringCopy(ITEMS_ATTRIB01[number]);
   ...
}
Displaying the items is extremely easy, as the number is also the number in the flipbook of all item icons i have. (0 is the inventory background)

Code: Select all

DrawItem[ (number,x,y)
{
   if(number=0)
   {
       return 0;
   }
   DrawFlipBookImage("Inventory", number,...);
   return 1;
} ]
To draw an item of the character i would do: (this is a bit simplified, because in ToT there is more than one character)

Code: Select all

DrawCItem[ (slotx, sloty)
{
   return DrawItem(GetAttribute("inv_" # slotx # sloty, "Player", 196+64*StringCopy(slotx), 512+64*StringCopy(sloty));
} ]
To draw all items in all 9 slots of one character i just do

Code: Select all

DrawCItem(1,1);
DrawCItem(1,2);
DrawCItem(1,3);
DrawCItem(2,1);
DrawCItem(2,2);
DrawCItem(2,3);
DrawCItem(3,1);
DrawCItem(3,2);
DrawCItem(3,3);
This is what i mean.

Or are you doing it differently? Do you have a player attribute for each 'slot' in the inventory (which then stores which type is in this slot) or do you have one player attribute for each type of items?
Everyone can see the difficult, but only the wise can see the simple.
-----

Juryiel
Posts: 103
Joined: Fri Jan 04, 2008 1:18 pm

Re: Jury's Game Thread

Post by Juryiel » Mon Jun 09, 2008 12:46 pm

I think you may have the wrong idea or I'm not understanding you either. First of all I'm not trying to display items in character slots but instead in a general inventory. Think final fantasy (or any JRPG really) which has usable items. For example potions, berries, etc etc. So for example these items are displayed in a general menu page. But I don't want it to display something like "Potion 0" where 0 is the quantity. I only want the "Potion" item to appear if the quantity is larger than 0.

In other words I'm not talking about an equipment screen where a character has some items equipped in some limited number of slots. I'm talking about the main list of items available to the characters.

Let me give an example. You have a menu with 30 item slots. You open up your inventory when you start the game and the screen is empty. Then you go on to pick up a potion from a chest. Now you open up your inventory and it shows "Potion.........1" in slot 1. If you use the Potion the inventory becomes empty again. As you go on picking up items (thus making their quantity greater than zero) they appear in your inventory in the first available slot. But the thing is, they don't have dedicated slots. If you pick up a Item A the first inventory slot will have the Item A. But if you pick up Item B instead then the first slot will have Item B. As you go on using and getting items the items that need to be displayed and the slots they need to be displayed in change. Further, if all 30 slots are full and the character has more than 30 items picked up, then the character can scroll through items. If the character scrolls down then each slot needs to be updated to display the "one item ahead". So if slots 1-30 are displaying items 1-30 and I scroll down once, then slots 1-30 are now displaying items 2-31 respectively. Etc etc. I hope this helps clarify things.

I had a video up of how it worked (Menu.avi) but since I left school my school webspace was closed and the movie is no longer up :( But here's a video of FF

http://www.youtube.com/watch?v=9HBbvrMkS2s

See what the menu looks like when he clicks on "items"? Like that

Post Reply