Omnimaga
Calculator Community => Other Calc-Related Projects and Ideas => TI Z80 => Topic started by: Ashbad on May 18, 2011, 05:42:39 pm
-
Hello.
As many of you may know, I have decided to enter the 2011 Axe Summer of Coding contest, part 1. Therefore, I have decided to share what it is about, as you might imagine from my action of posting this thread :)
My entry is a calculator port/remix of the Uncharted series for the PS3 (highly acclaimed series with 2 entries, both with over 50 perfect ratings -- if you have a PS3, you usually have Uncharted 1/2 as well) that brings Nathan Drake to the beautiful world of graphing calculators! This story takes place years before the happenings of Uncharted I and II, when Nathan Drake was only a 21 year old guy with no worries about evading bounty hunters, discovering the treasures of Kublai Khan, or stopping evil dictator Russians from growing invincible. Instead, you were studying for college in Mongolia, when you were suddenly ambushed by ancient skeletons in Khan outfitting -- and that's all you remember happening. You find yourself a day or so later in a tundra that is perfectly white and flat as far as the eye can see, with only one thing in view -- a huge looming monastery filled with heavens-knows-what. Why are you here -- what did the skeleton men want? Why did they spare you, and why are you 1000 miles away from your ambush site in front of an ancient fortress? Find out by supporting and waiting for my contest entry, Uncharted TI, to be released!
Screenie with elements of the game I made during science class today:
(http://img.removedfromgame.com/imgs/UnchartedTI 001.gif)
As you can see, it has decent physics involved, but unlike most other physics games being entered, mine is more based on action -- pushing blocks around to hold cover and make barriers, shooting your pistol at [removed due to spoiler of plot], and moving along the monastery to find [removed for spoiler of plot]. There shall be explosive sap (a la Uncharted 2 style), Chinese Rockets, and more awesome eye-catching things, as well as actual-spreading fire, arrows, crossbows, smart-AI based enemies, endless hours of fun, and much more!
And, I made the physics engine myself with no other references to other's methods -- I no steal any code :P
-
SO. MANY. PHYSICS. GAMES.
And they all look amazing. ;) :P
lots of competition this year!
EDIT: btw, when one block collides with another, why doesn't the other slide a bit? :P
-
EDIT: btw, when one block collides with another, why doesn't the other slide a bit? :P
I was thinking of making that happen, but when you check against all the other blocks for that, it slowed it down considerably, and the code for it is quite inflated -- plus, it would transfer so little kinetic energy to the other block that it would barely be noticeable :P
-
I meant, instead of the energy causing the hitting object to bounce back, it should cause the object being hit to bounce forward, while the hitting object stops. ;)
-
I meant, instead of the energy causing the hitting object to bounce back, it should cause the object being hit to bounce forward, while the hitting object stops. ;)
well, I can do that, and the realistic way would be just to expand upon what I have and set the X velocity for the hit box to the old one and do -(Xvelocity//2) -> Xvelocity of the other one.
Also, here's a catch I didn't implement yet -- your only real weapon you can keep for most of the game is the pistol, which happens to have only one bullet, meaning every time you shoot it, you gotta go pick it up ;D makes for frustratingun sharpshooting and action-based puzzles.
-
set the X velocity for the hit box to the old one and do -(Xvelocity//2) -> Xvelocity of the other one.
That does't conserve energy or momentum :P The physically accurate thing to do is swap their velocities (assuming they have the same mass).
That looks really awesome :D I did notice a few quirks though, it seemed one time you jumped into a box and it moved towards you? Still a few bugs i guess ^^ But I can't wait for this to come out :D There are so many awesome games being made for this contest! The competition is really fierce ^^
Methinks I will post a single segmented rope tutorial :D
-
Looks nice so far. I'm unfamiliar with the original games, so I'll just have to see how this develops in it's own right. =)
-
Ze' Title Screen So far:
comp size
(http://img.removedfromgame.com/imgs/UnchartedTI_002.png)
real size
(http://img.removedfromgame.com/imgs/0-UnchartedTI_002.png)
what do you think? ;D it took me ~45 minutes to make -- it's not near done, but the overarching theme is shown.
-
Holy crap. I am now super-
un-motivated to start work on MFQT again.
Title screen looks great. Physics look epic. I can't wait to see what's in store!
-
Looks cool!
-
That sure looks amazing Ashbad, excellent job, also isn't it DALANIAN SOFT? I think it says DALAIAN. Just wondering, good luck!
-
Good lord, 256mode character physics! I still have a spiked jump and immediate horizontal speed changes, and NO PHYSICS!
-
Now my friends, I have put in a lot of effort today in differentiating my game from the rest, so I have three new awesome features I need to share with you.
1. I now have bullet physics working pitch-perfect. You armed with only one pistol and... one bullet. You only have one shot, and you must make it perfect if you want to level up and beat levels. The catch is, you can pick it up and re-use it over and over again :) so, you better be a good shot or else you have to dodge fire and go pick it up again. And no, you can't pick up arrows, spears, and Chinese rockets and shoot them from your pistol :P Here is an example of me playing with the gun:
(http://img.removedfromgame.com/imgs/UnchartedTI_003.png)
2. Secondly (this one isn't as awesome, though) I made boxes come in many different shapes and sizes, yet while adding no extra overhead. So far I have 3 types of boxes: the original one, a large hunk of metal, and a bullet barricade you can shoot bullets through, but enemies can't see you. Example of the three types so far:
(http://img.removedfromgame.com/imgs/UnchartedTI_004.png)
A note, I still have 7 unused bytes per possible box that I'm not using, and I plan to use them to hold other attributes such as weight, if it can burn (which leads to number 3 also), if it can break, weight, and a few other goodies.
3. This one is a good one to end with for today's update: fully functioning fire. You see, fire can be started by detonating a chinese rocket or exploding blue tree sap (neither fully working yet), and falls until it hits the ground or gets blown out. It can spread rather quickly to surrounding areas, and later on will be able to burn wood, Drake (you) and enemies as well. For now, it just looks really cool ;D Here's an example of fire spreading across the room: (You'll see that I may run the program a few times, since the fire might blow out before it spreads much :P)
(http://img.removedfromgame.com/imgs/UnchartedTI_005.png)
I think I made a decent amount of updates today ^-^ this is going quite well so far.
-
Wow that all looks so awesome! I especially like the fire :D I am in the middle of adding a fire like element into my game as well, in the form of fuses. I still noticed something weird going on with the boxes when you jump into them in the second screenshot. They seem to be moving into you?
-
Looks cool. :)
I still noticed something weird going on with the boxes when you jump into them in the second screenshot. They seem to be moving into you?
Yeah, I noticed that too. :-\
-
Wow that all looks so awesome! I especially like the fire :D I am in the middle of adding a fire like element into my game as well, in the form of fuses. I still noticed something weird going on with the boxes when you jump into them in the second screenshot. They seem to be moving into you?
thanks :D yeah, there's still small issues with my pushing code :P that's the first time I saw it -- when I was finally showing stuff off :P
what I need to add next is chinese rockets and explosive sap that actually generate the fire :)
EDIT: and finalized (for now) title screen:
(http://img.removedfromgame.com/imgs/unchartedTI title screen.png)
-
nice! the title screen is old-school video game style, I like it. ;)
-
Thanks :) also, I fixed a bug you might've noticed on the last page -- a fire might spawn another fire far away from it's origin, which could potentially ruin a ton of puzzles and firefights if left alone ;D
-
Great looking Ashbad! (Never played uncharted before, though)
-
You're in for a treat in about an hour -- I have chinese rockets fully functional, in 3 forms: Normal, Napalm, and tomohawk fireworks (of course the chinese in the early millenia were the first to have rockets!) and they look absolutely stunning. I plan on releasing a screeny in an hour showing them off. They make everything I posted before look wimpy and trivial. Stay tuned!
-
So, today's update of... the day. So, I have added chinese rockets, (I was not able to get the tomahawk missile working in time for the 3:00 PM screenie I'm about to post, but it can be posted later I guess) and they look particularly awesome, and quite explosive. Currently, they can only be triggered by a bullet shot, but it'll be easy to get them started by other things like explosive sap and fire later. There are currently two types (subject to increase in variety soon):
Normal -- these when shot are propelled forward at a decent speed, and when they explode they cause massive disturbance and may catch surrounding areas on fire. Screenie:
(http://img.removedfromgame.com/imgs/UnchartedTI 006.png)
Incendiaries (napalm) rockets -- These are like the previous rockets, but much faster and cruise at much lower altitudes. These when activated will release a jet stream filled with 'napalm' on the enemy, incinerating everything in sight. These also end with a big bang. Screenie:
(http://img.removedfromgame.com/imgs/UnchartedTI 007.png)
right now, it is allowed to support up to 4 rockets on screen at a time (more than you'll ever need) but through my tests I found it can hold up to ~30 with little to no lag.
-
gah..everything is now explosive....D:
*Yeong is thinking where to add explosions in Kirby
-
yeah, lots of explosions to go around :P but since they're a key element in original uncharted games, I feel the need to have them here :)
I think my goal for the next update is to add explosive sap and multi-segment ropes.
-
Wow, between your project and Builderboy's, this contest is going to be explosive. ;)
-
indeed :) I can't wait until I get enemies working, it'll be so fun to melt them with napalm ;D
-
Woah. Now I have to make Nymless REALLY special.
-
more fun with rockets: (I fixed many bugs with the bullet activation and explosions, and now napalm spreads fire fairly evenly over the field)
(http://img.removedfromgame.com/imgs/UnchartedTI 008.gif)
-
That looks awesome. Great job, Ashbad. ;D
-
AMAZING. O.O
-
more fun with rockets: (I fixed many bugs with the bullet activation and explosions, and now napalm spreads fire fairly evenly over the field)
(http://img.removedfromgame.com/imgs/UnchartedTI 008.gif)
Ashbad, that is looking really epic, nice job!
-
O.O Epicness.
-
Wow... explosions everywhere! Netham45 would be proud! ;D Looking good Ashbad!
-
Thanks all ;D then you'll be ready to see an even more epic update tomorrow -- both exploding sap AND multi-segment ropes you can swing from :)
-
Did you just GOBBLE up the fire?
-
well, I got a lot done today considering I was at my pool for the past 6 hours cleaning stuff up for my job :P Here's what I did in the last hour or so (no screenies quite yet, I'll say why in a moment):
- I finished all types of rockets, which now include the ultra-sonic ones (INSANELY fast and cool-looking), and fireworks (which goes straight up and emits explosions until it crashes)
- I got explosive sap working, in about 5 minutes of coding (easier than I thought ;D since it's based on the rocket engine anyways)
- I'm working on getting 8-segment ropes working, right now all you can do is grab onto them and fall off them :P I'm trying to theorize an idea of how I'll get it to swing -- hopefully by tonight. Once that's done, then you can haz the screenies.
-
This looks fantastic! Can't wait to play it.
-
thanks :D I'm glad you like it!
-
Ugh, physics./me is not gonna do ropes.
-
but I wrote a tutorial and everything :D
-
Do you have any idea how bad a ball on a rope would look?
Besides, I'm having data storage issues as it is; how on Earth am I supposed to record rope length, anchors and so on and so forth?
I do plan on making a level editor, y'know. Besides, my rope's gotta bend around things (stupid attention to detail!).
-
Ashbad, those are some wicked ideas, good luck with them!
-
Besides, my rope's gotta bend around things (stupid attention to detail!).
That isn't terribly hard to do with 8-segment ropes, considering each segment is actually just a point connected to another point and each one has a 8.8 X, Y, Xvelocity, and Yvelocity :)
I almost have multi-segment ropes working -- basically what I'm trying to do is make them stay the same length, but that's almost fixed ;)
-
Do you have any idea how bad a ball on a rope would look?
Lol I understand why they would be hard to code, but why would they look so terrible?
-
[/offtopic]
Right now, I think I'm going to make ropes be only one segment at the moment :P I got it working, but it cut my framerate significantly. one segment ropes I got working very well though :)
I'm also working on some enemy AI, and for now there are only skeletons (the common enemy) that are somewhat-functional. The AI in this game is heavily derived from the real uncharted style so here is a quick framework:
- State S is where enemies start in, in which they search the area for any trespassers (you) they will simply move around until you are found, which can be achieved by:
- you are fully visible from where they are
- you are partially visible and moving
- you shoot your gun from a close range
- State F is when enemies have found you and actually try to kill you. They will drop down for cover first, and then commence in attacking.
- State A is when you aren't found in state S for at least 512 frames, and the enemies get bored and just kind 'hang out'
- State C is when you confuse an enemy to the point that they kill each other.
-
Ashbad, I like state C
Do you have any idea how bad a ball on a rope would look?
Lol I understand why they would be hard to code, but why would they look so terrible?
All you would see would be a rope with a line following it as it swings.
-
I don't think I'm gonna have a big update today, unfortunately :( however, look forward to a good one tomorrow ;)
-
Oh I see what you mean now, the ball being your character
-
Yeah. I'm looking forward to playing everyone's games, although I'm pretty sure mine's gonna be
slacking in the graphics department
-
well I'm sure yours will also turn out well :) good luck on it! :D
Well, my estimate for the size of this program overall is 40K. It will have a 16K flash ap controller and a 20K engine program with crabcake :)
-
/me is facing certain doom this year.
-
Does data count to a flash app's size?
-
Holy crap, Ashbad, does your mem grow on trees or something?
Nymless Currently runs just under 3K, and each level will run about 800 bytes. Of course, I have no Idea how big the level editor's gonna get, though. :)
-
That amount of memory consumption is out of the question for me. :/
-
This looks nice Ashbad! I like all the explosions and fire effects O.O
Nice physics too :)
Although I also hope you can finish ROL3 don't forget to finish this too :D
-
Still in progress, but inching along as I'm taking on all my projects at once in full force :P
-
You should probably focus on this one a bit more since there's only 1 month left to the contest. I'm glad this is still alive by the way :)
-
I was working on this during my break in lifeguarding today, and I finished level loading and editing. I think I did pretty beast on my level compression techniques:
- there are many types of tiles in this game, and using byte indices would make the tilemap take up 180 bytes. I made it compress to one bit per tile, using the state of the surrounding tiles to determine the current tile type. Tha cuts it down to 22 bytes and an extra nibble, which I use to determine the "level" the current room is part of, which can determine changes in tile prediction as well. I then run it through a limited 2DRLE co oression algorithm that uses 6 bits to determine length, 1 bit for direction and 1 bit for state. It check beforehand to see if L2DRLE compression is nessicary or not, and stores compression state right after the beginning level determining nibble. One detailed room I made was only 12 bytes in tile data total, as opposed to 180.
- Enemies, objects, etc. Take up about 80 bytes per room. However, i made it so each unused slot starts data with a reset bit, which means to skip that bit and continue struct processing with a +1/8 offset and move to the next slot position. A room with two boxes only uses 10 bytes and 3 licks (half nibbles) of data as opposed to 80 wasted bytes.
- Since the sizes of rooms vary so much, instead of holding all rooms in arrays of 260 byte structs, each level-room array and data-level array is begun with with a static vector table for quick reference to rooms. The data-level array is an array of level-room arrays, and has an embedded and extended vector table after the heading VT that combines all elements of held arrays, and indices.
- A non-compressed level-room array is 5200 bytes. Compressed ones are now at the very most 2160 bytes, but I'm sure the actual output will be closer to under 1000 bytes. 1000 bytes for an action packed hour level is pretty damn good ;)
-
Are you not afraid of getting your calc stolen there?? O.O
Anyway that's a lot of tiles types. This update is nice. Thanks for the info about the game :D
-
When are we gonna get another screen shot :P
I enjoy screenshots :)
-
Hopefully by tomorrow ;)
I now have enemies working halfway (they can walk, see you, and come at you) but still need to doze off and shoot/slash at you. I also made it on the side so that you can make "mods" to UCTI using my TCPS scripting language, which I implemented on-calc today.
-
That's some nice compression you've got going there. Makes me wish that I had done a little more than just using nibbles for my tilemap...
-
Well, I still can't show screenies ATM, but I can show mockups! :D Mockups as in one. All that I have done lately is shown here, and it looks 100% like that in game (besides the "Level 1-5" thing, I have two custom text routines, one for the "BULLET" and the other for "Level 1-5" I'm working on but it'll look like that):
(http://img.removedfromgame.com/imgs/UnchartedTI 009.png)
I have enemy movement almost down (they can move, they have a line of sight and such, but I still need to get them to attack Drake and doze off after a while of you hiding). Then the enemies will be perfect state machines and will be awesome and kill you :) (in this replica mock, it shows only skeletons, which are one of the ~10 different enemies, which, as you can't see as the main character isn't included, are twice your size)
I also have compression working perfectly now, that above screenie looks like this with no prediction and only bits to map with:
(http://img.removedfromgame.com/imgs/bit example.png)
This is compressed to about 15 bytes with my algorithm. The moon in the background is overlain on top based on the level nibble's value, and it is checked to see if the space needed for drawing the moon is occupied, and draws as much of it as possible.
HUD is now somewhat functional. Added a bullet indicator and a health bar (I finally got dithering to work well with this in-program) and almost done the level thing you see there.
And on a side note, I think UCTI is the first game that features a non-normallic 1st/3rd party scripting language (I made a scripting language, TCPS, found here in the projects section) on a calculator that can be used to mod and make add-ons to the game (almost 100% functional and documented)
So, decent progress today and yesterday ;D
-
(http://img.removedfromgame.com/imgs/UnchartedTI 009.png)
Are you saying this screen only takes 15 bytes of space?? O.O
This looks great by the way :)
-
(http://img.removedfromgame.com/imgs/UnchartedTI 009.png)
Are you saying this screen only takes 15 bytes of space?? O.O
This looks great by the way :)
I think he meant the less detailed version below that picture.
-
(http://img.removedfromgame.com/imgs/UnchartedTI 009.png)
Are you saying this screen only takes 15 bytes of space?? O.O
This looks great by the way :)
I think he meant the less detailed version below that picture.
No, I meant that picture ;) though I lied; it's really 31 bytes, due to the objects -- the tile data amounts to 15 bytes.
-
Indeed, the mockup looks cool. Even though, 16bytes for the objects and 15 bytes for the tiles is not *that* much :)
-
How restrictive is the compression algorithm in terms of level design? It seems like levels would be filled with houses (or whatever those are), or can you switch which tileset is being used?
-
Yeah, I can switch at any time by changing the screen's level nibble :)
-
Its looking better and better every time I see this. So far my favorites for this contest are between you and tloz128's AXEL and I think it will really come down to you and tloz128
-
Source Released, I don't want xnor need it anymore. Far from the last version, but I think this one has the rockets at least (possibly exploding sap):
PasteBin: http://pastebin.com/xxvvTLrr
Also attached.
-
Waaaaaat? U no gonna work on it? Y U abandon it Ashbad?
-
Waaaaaat? U no gonna work on it? Y U abandon it Ashbad?
PrizmCity
-
Waaaaaat? U no gonna work on it? Y U abandon it Ashbad?
PrizmCity
What is that?
-
Waaaaaat? U no gonna work on it? Y U abandon it Ashbad?
PrizmCity
What is that?
http://ourl.ca/12843