Welcome, Guest. Please login or register.

Login with username, password and session length

 
Advanced search

1411281 Posts in 69324 Topics- by 58380 Members - Latest Member: bob1029

March 28, 2024, 10:12:12 PM

Need hosting? Check out Digital Ocean
(more details in this thread)
TIGSource ForumsCommunityJams & EventsCompetitionsOld CompetitionsAssemblee: Part 2Happy Helper Puppy - v0.2 [FINISHED (as much as I'll do)]
Pages: [1] 2
Print
Author Topic: Happy Helper Puppy - v0.2 [FINISHED (as much as I'll do)]  (Read 9824 times)
ChiggenWingz
Level 0
**


View Profile
« on: December 20, 2009, 07:17:14 PM »

Version 0.2 now released.

DOWNLOAD - Version 0.2 Click Here To Download


You will also need the XNA 3.1 runtimes if you don't already have them.



Controls
* Arrow keys for dog movement
* [Ctrl + E] start editor mode

While in editor mode
* Numpad Arrows for camera movement
* Numpad 9 or 3 for camera zooming
* [G] to turn on grid (recommended)
* [Shift + G] to turn on grid snapping
* [Ctrl + G] to set grid dimensions and offset
* [H] to toggle tile menu
* Numbers 1,2,3,4 change between different tilesets
* Left click to select tile while in tile menu (you need to close tile menu before you can place tiles)
* [Delete] while a tile is highlighted will delete it.
* [Ctrl + D] turns on tile debugging (kills framerate)
* Right click to clear selected tile
* [Ctrl + S] Save art and tile data
* MAX OF 1000 tiles placed

* [C] to show collision
* [Ctrl + C] to enable collision modification mode.  Drag rectangles for new collision.
* [Delete] while a collision rectangle is highlighted will delete it.
* [Alt + S] Save Collision data
* MAX OF 100 Collision boxes placed

* [A] to show Ai Node debugging
* [Ctrl + A] to enable ai node modification.  Drag rectangle for new ai node
* Numpad Plus and Minus keys while in Ai Node Mod mode to change the type of Ai node to place next.  (currently only Jump_Small works)
* [Delete] while a ai node rectangle is highlighted will delete it.
* [Shift + S] save ai node data
* MAX OF 100 Ai node boxes placed

* [CTRL + Delete] clear all data of collision or art or ai node.

Oops I'm Cheating a little:
 * Using RhysD's Tileset that he made before Assembly Part 1 (I think)
 * Using Courier New font, would take too long to learn how to add a custom spritefont
 * Custom art to indicate level editor mode

Assets Used:
Fifth's Dog sprites
Kazerad's Dragon Princess
RhysD's Tileset
Pencerkoff's Trees & FatDude
Mashpotatoe's Tileset
Andrius's Mouse Cursors

The Game Goal:
You play as the dog/puppy while the dragon princess runs along killing things.  Occasionally she'll need items collected or a revival and you need to be the loyal companion ready to aid her in her mission.

What Actually Came Out
More of a scripted AI routine and a basic platformer engine.  Lots of room for engine expansion but just ran out of time to do some cool technical stuff.  Also a level editor.  You were suppose to be able to help/interact with the hero character, but didn't get a chance to implement any of it.

The Inspiration:
Currently working on another game with friends, will need to do animation and character states soon, so wanted a clean slate to work on so I dont have to sift through all my spegatti code Tongue  May as well take advantage of free art while its there and see what the challenges are.  Also the dog sprite by Fifth looks like one of my own pet dogs  Wink





Platform:
Windows; using XNA Game Studio in C#.  (Why you ask would I do such a horrible thing?)  Well because I did a short game course, and C# is what I'm comfortable with at the moment.  I would rather do things in C++ or Assembly, but I need to understand game logic concepts first before diving into memory management and the finer art of creating things from scratch... Otherwise I'd just get bogged down with frustration trying to make a sprite on screen and never getting around to making game code  WTF



Dev Progress Reports:
Dev Bog #1 - http://forums.tigsource.com/index.php?topic=10016.msg308251#msg308251
Dev Slogging Through Bog #2 - http://forums.tigsource.com/index.php?topic=10016.msg308812#msg308812
The Click Click Updated #3 - http://forums.tigsource.com/index.php?topic=10016.msg310427#msg310427
Devestating Update #4 Jumpy Jumpness - http://forums.tigsource.com/index.php?topic=10016.msg314779#msg314779



Also thought I'd pimp my brother's game a little.  Check it out at http://forums.tigsource.com/index.php?topic=9831.0  Gentleman
« Last Edit: January 20, 2010, 03:16:45 AM by ChiggenWingz » Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #1 on: December 20, 2009, 07:17:44 PM »

Dev Bog #1  Hand Metal LeftWTFHand Metal Right

I have this bad habit of telling people I'm doing something then never finishing it.  It frustrates me and it disappointing people, so this time I'm going to try and aim low and see if I can actually pull something off.
I love the little dog sprite, he's so c00t Kiss Doing he's little thing just walking along being all fwuffy doggy dogness

My brother had been telling me about this challenge for a while now, at the time I was working on another project so I wasn't overly fussed if I joined in or not.  But after weeks of stuffing around with collision code I was getting sick of seeing circles and squares on the screen for debugging.  So I thought I'd give the challenge a go and start something from scratch so I could see something resembling a fun game on the screen fairly quickly.

So at the time I started this there was only one other person that had announced they were using Fifth's sprite set.  So I set to work on an animation system.

Right now I have a basic system that has various character states.  Eg Walking, Running, Attack, etc.   Based on that state the appropriate animation is played.  I can configure the animation frame rate, the size of each animation set (eg, walking could be 32x32, but running could be 40x32).  So that allowed me to play with various movement speeds and see how they would match up with the animation speed.

Downside currently is that I can't set delays between each frame of animation, or have triggered events that dictate when to play the next frame.  Will I implement this¿?, yet to see.

Initially I didn't have any framerate regulation, so the dog would wag his tail 10 times a second, ultra speed wag.  Must of been fairly happy.  ...and the panting looked like his chest was vibrating.

The dragon princess came in a little later, she was the next challenge.  Lots of white space around the character, and the X-Y co-ordinate was in the top left of the sprite.  It still is.  Got her running around at first as there was only a single frame of idle animation which is a bit sad, would have liked some life in her as she stands around.  Added a very simple retarded Ai controller that simply ran her off to the right... and then off the screen.  Had to fix that, so she ran back and fourth.

So the sprites, how am I finding them to work with?  I like the look of them, the animation is nice, but first impressions is that they are lacking animations I would like to have seen:-
 * Dog Sit Down
 * Dog Stand Up
 * Dragon Princess idle
 * Dog stand idle

This is no fault of the artist in any way.  Normally when a game is designed there is a long list of states for a character that is generated before any sprites are made.  The artists will have input and then they are created.  So everything is ready to go from the start.  There will always be room later on to add additional animations and character states as the design of the game changes.  In this challenge's case the artists pulled off a phenomenal effort of sprites and animations in a short period of time, not knowing what a game may need.  Also I can understand from the artist's perspective, why would you want to waste time on a sprite that may never get used?  So big ups to the guys who made the art, its not everything we want, but its more than enough to give us programmers a challenge Tongue

I have no doubt there will be the budding few who will finish this challenge, then work with the artists and develop the sprites and animations further.

--------------------------------------------------------------------------

Where am I now?

Thats what I'm trying to figure out and the main reason I'm writing this, to put it down on paper so to speak and see if I can focus my attention on where to go next.

I want to re-write my state system a bit more, currently is just an enumerator, but I want to turn it into a array of structs that hold the properties of each state.

Basically, a character can be Walking, Running, Attacking, etc.  But that only tells the program that they are simply that, either Walking, Running, Attacking, etc.  Where it starts to fall short is, lets say I have attack animation.  Theres nothing to tell the program that the attack animation has finished, how long its meant to take, or if the animation can be stopped.  Eg, I may not want the player to be able to move while they are attacking, but I do want to be able to have a hurt animation play to interrupt the attack animation.  So the new state system needs to say...

If Attacking, then can NOT Move, BUT can be interrupted by Hurt state.




So by having a big encapsulating set of properties, I can say what can and can't be done to any given state.  Problem is with that is how do I write this?  I know I wan a struct that holds properties.  I think I may want to use an array to hold all the structs.  But what is the parameter type I want to use to say what can and can't be done?  What is a good way to set flags without needing to write down each and every other state and how it interacts with the current state?

This means a bit of re-work to the code which is inevitable, and it doesn't really add anything to the visual flair of the game currently.  Its more under the hood stuff which is a bit off putting, when considering all I want to do at this moment is make things look cool.  Been doing a bit too much under the hood stuff recently.  I find after a few days of feeling like you done a good job of working under the hood, you work on a few other things, then realize you probably should have written the stuff differently.  Its feels like its this constant state of wishing I had known what I know now, then debating to my self, 'do I just use what I have, or go and plow through big chunks of code, to make it work better?'  Roll Eyes

So I'll probably look at my code again, maybe see if I can sift though the tutorials on various sites to come up with a solution.

I have a big list of things ahead of me to do before this game is even a game.

 * Basic physics in the world, so gravity affects me when I jump
 * Collision detection (should be easy, as I've recently did a bit on my other game)
 * Dragon Princess Ai (so she navigates the world)
 * An enemy to attack
 * Items to pick up
 * Interactions between the DraPri and the Dog, etc.
 * Sound?
 * Background?

...Just had a thought.

Might hold off on new state/animation system for a bit.  I need to get around to having a background drawn and the ability for the camera to move around the level.  I already have code for this done in my other game, so I may just work on that for a little bit.  Its something simple and easy I can probably do in a short time and it'll have a visual impact faily quickly.

So yeah, that will be my next mission, I'll play around with the camera and background.  Probably start on the basics for a tiling system  Grin

..Now to find some interesting backgrounds to use from all the art  Gentleman
« Last Edit: December 20, 2009, 08:24:56 PM by ChiggenWingz » Logged
SirNiko
Level 10
*****



View Profile
« Reply #2 on: December 20, 2009, 07:34:11 PM »

I like the idea of playing as the sidekick instead of the hero. That has some potential.

If you're not going to be following the rules for this comp, maybe it'd be better to put this in a different subforum? The materials are all open source, so you don't have to be part of the compo to use them, and they'll be made available for later.

At any rate, it's nifty to see a game that's more focused on some aspect of the design other than just slapping animated sprites on the screen and making some logic so they can kill each other. Specifically, making it so they look more natural when killing each other.

-SirNiko
Logged
pgil
Guest
« Reply #3 on: December 20, 2009, 07:44:52 PM »

Cute dog. And your game sound really interesting.

As far as the rules, I think you're fine. Other people have used RhysD's tileset, and I don't think minor edits like cropping sprites is against the rules.
Logged
Kazerad
Level 1
*


Should really make more games.


View Profile
« Reply #4 on: December 20, 2009, 08:30:57 PM »

I agree with Niko, the premise of playing as the sidekick is very neat. And it uses one of my sprites so I automatically love it, of course.

Don't worry about if you "cheated", as I understand it the competition rules aren't too strict. At most someone will refuse to vote for you because you overstepped a bit too far. Cropping, realigning, or even resizing graphics is fine; a lot of people need to do that anyway to use them with their gamemaking program/language/engine of choice.
Logged

ChiggenWingz
Level 0
**


View Profile
« Reply #5 on: December 20, 2009, 08:31:39 PM »

If you're not going to be following the rules for this comp, maybe it'd be better to put this in a different subforum?
-SirNiko

Maybe see if its allowed to be held off until towards the end of the challenge.  If things fair well I might be able to re-jig the game so it confirms to the rules.  At the moment, I'm focused on getting something going and that probably means fiddling a bit out of the rules, as bits start to solidify I might find its easy to get it all to work nicely.  Beg

Eg, when I originally started, I had to flip every single sprite in an art program so I could have a walk left and right animation set.  Found a coding way around it that actually saves me time and flips the sprites automatcally, thus adhears to the rules a little better  Grin Hand Thumbs Up Right
Logged
NMcCoy
Level 1
*



View Profile WWW
« Reply #6 on: December 21, 2009, 03:04:34 AM »

The Game:
You play as the dog/puppy while the dragon princess runs along killing things.  Occasionally she'll need items collected or a revival and you need to be the loyal companion ready to aid her in her mission.

 WTF Augh. This was exactly the premise for my game idea... But I never mentioned it and haven't done any actual work at this point, so I wish you the best of luck with this endeavor.

Time to get to work on my puzzle game backup plan.  Big Laff
Logged

Dragondot 2 is out now! Go get it!
Fifth
Level 10
*****



View Profile
« Reply #7 on: December 21, 2009, 02:06:52 PM »

Heh, playing as the sidekick sounds like a fun idea!  And dogspeed to your character state/animation pursuits!


...Anyway, there might be a few instances where you can borrow a frame or two from another animation to substitute for an animation that's missing.
The last frame of the doggy's jump animation could probably fit as an in-between for standing and sitting:
It's not perfect, but it could work.
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #8 on: December 21, 2009, 07:06:53 PM »

...Anyway, there might be a few instances where you can borrow a frame or two from another animation to substitute for an animation that's missing.
The last frame of the doggy's jump animation could probably fit as an in-between for standing and sitting:
It's not perfect, but it could work.

It looks pretty fine to me.  Nice find :D

Haven't got the animation system up to handle cases like get up and walk, or stop walking and sit, but now that I know the sprites are there, I'll put that on my todo list.
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #9 on: December 21, 2009, 07:43:02 PM »

Dev Slogging Through Bog #2

So it turns out what I wanted to do with the background and tiles isn't so straight forward.



When I was working on my other game, to make the camera move around the world I used a variable called "CameraOffset".  Anything that was to be drawn to the screen would have the CameraOffset deducted from it.  Eg:-

DrawMyAvatar(screenPosition = (AvatarPosition - CameraOffset))

It does the job just as well as anything else.  Downside though is that I have to make sure I remember to add the CameraOffset variable to each thing that is drawn.

My brother came up with a different solution that I held off from integrating at the time as it was something new and I was focused on other fun stuff like making bullet tracer rounds come from the avatar's position.  But this time for HHP I thought I'd give his solution a go.

Instead of adding a CameraOffset to everything, I simply manipulate the entire scene that is being drawn.  From my understanding of XNA, when you draw a sprite, it's basically a texture applied to a 3D square drawn on the screen.  From that it can be resized easily, rotated and all sorts of other fun stuff without doing crazy maths on each pixel of a sprite.  What this also means is that the entire scene is probably adhering to the drawing principles of a 3D game.  In this specific case, how a camera would work in a 3D game.

Basically, in a 3D game you would draw all your vertexes (corners of a triangle) in a scene.  As your camera moves around the world, you don't actually modify the position of the vertexes, you "translate" the scene.  So you don't need to go through all the memory of your scene altering it bit by bit, the graphic card simply has the data of each vertex and does its own calculation as to where they should be on the screen as you move the camera.

So how does this work in my 2D game?  My guess is that all the sprites are rendered to various flat squares, and the camera essentially remains static looking at the squares.  The technique I'm using actually shifts the camera around, and the graphic card does the rest by making the sprites move around on the screen.  Blink

So if I have a really long level that stretches off to the right; instead of shifting all the tiles across to the left, I simply move the camera to the right.

Other features of the camera's ability to move around is that I can rotate the entire scene, zoom in and out, and possibly even look at it from different angles, as if it was a billboard.

Theres still fair bit to be done in regards to all this, as I've simply added some keyboard controls to manipulate the camera.  To make it work in game and follow the characters naturally, I'll throw together some sort of automated controller.  We'll see if the other effects are of any use and go from there.

-------------------------------------------------------------

I've also had to accept the fact that I need a level editor  Cry  I was hoping to get away with some simple hand coded levels, but after looking at the work load and the need to tweak various aspects of the game as I develop the AI, a level editor seemed to be the appropriate move.

So I'm taking my first steps into that.  Right now, I can simply switch to the edtior mode with Ctrl+E and then begin pasting tiles anywhere I want on the screen.  I mean ANYWHERE.  I'm not restricted by a grid or screen space, as I can zoom out and place it.

The other neat fact is that the characters can still move about as I'm using the editor.  Will this remain in the game?  Not sure yet, but I think it should be possible.

My current thinking is that level editing will be divided into various aspects.  You essentially make various art layers.  You select your tile or other art asset, stick it where you want and continue.  The collision will come from hand made collision boxes.  That way I can have large rectangles for collision, instead of lots of small individual ones needing to be checked all the time.  The layering system also allows for foreground and background pictures.

All this has yet to be implemented, and I think I'm over the hard part of the initial struggle to get it going.


So heres my task list revised...

 * Try not to get bored making level editor, and stick to it
 * Add lots of tile assets to the game
 * Have these tile assets selectable and placeable in the level editor
 * Allow placement of collision rectangles for collision detection at a later date
 * Be able to save out these rectangles and load them again later
 * Allow tile rescaling and flipping

In the end, I want to be able to load any art layer I want and any collision layer I want.  That way I could have a vast continuous world that loads and unloads as the player moves about.

Logged
jotapeh
Level 10
*****


View Profile
« Reply #10 on: December 21, 2009, 09:26:47 PM »

Sounds like it's coming along nicely! Keep it up.

The SlogBlog is a bit much for me to read all at once, but I'll digest it piece by piece over time  Giggle
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #11 on: December 21, 2009, 09:44:00 PM »

I'm hoping to add more pictures to the slog blog to break it up a bit more, but haven't got anything really.

Just finished adding a system where I can select a tile piece and then place it in the world.  Also have a tile highlight system to show you what tile you are currently able to interact with.  Funnily enough I thought it would be a huge performance hit, but its not :D

The performance hit has been displaying lots of debugging text on each tile, so need to find a better way to do that.

Time for a TV break  Hand Any Key
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #12 on: December 24, 2009, 08:30:40 PM »

The Click Click Update #3

So for the past few days I've been working a sort of level editor, probably spent more time on it than I was expecting and there is still a fair bit to go.  But I managed get something cool working.



What you're basically looking at, is the game in an Editor state.  By pressing a few keys I can show the tileset artwork and select a portion of it to then paste in my level.  Lets say I wanted the tree, so I move the mouse selection box to the tree, left-click and it appears under my mouse cursor.  I turn off the tile selection and can paste that portion of the tileset anywhere I want.  Like a rubber stamp.

I added a grid and grid-snapping system so the art could be neater and things lined up better.  When in grid-snap mode as you move the art around it goes from each grid section to the next as you would expect.  Also the grid is adjustable with its width, height, and also has an offset value.

Rolling the mouse wheel adjusts the scale of the art up and down.  So I'm not just limited to having the one resolution.

Future expansion to this will allow you to flip the piece of art either horizontally or vertically so you can have a bit more variety.  May even put a rotation system in depending if it helps the level look better.



The good thing also is that I simply can press Ctrl+S now to save the level in its state, so no hand coding Bytes for me  Wink  Also I'm glad I did kick myself up the butt and added a delete system.  It sounds obvious to add something that will delete tiles that are placed, but originally when I started speccing it out it seemed to be a mammoth task.  Managed to find a way and after a bit of testing it seems to work well and wasn't as big as I had thought to implement.

Originally I was going to have each leveldata file as a variable size file based on how many tiles had been placed.  But I was constantly chasing up problems that were related to incorrectly indexed stuff in the level file because of a bad save, so I hard coded the save system to simply dump the entire level data into a file without trying to optimize the file size in any way.  Turns out the file is only about 35kb, which is nice and small, I had fears it could have been a lot bigger

One of the ways I tried dealing with deleting and saving an optimized file was to check various points in the Level Data file to see if it had a specific value of Zero.  Problem with that was when I deleted various tiles it would reset that specific value to Zero.  Thus the entire level wasn't saved correctly, or it would bugger up the way its indexed.  One way I tried to organize it was to sort the Level Data array after you delete a tile.  Not sure how fast it was when we do the sort, but in level editor mode I'm not overly fussed on game smoothness.  But to no avail, I couldn't find an Array Sorting system that would suit me, or the systems described in various tutorials I found too complicated.  So I went back to my indexing system and did a bit of a re-work.  What it does now; when you delete a tile, it sets the index value back to that tile position in the Level Data array.  Then next time I go to add a tile, it adds it to that location.  The next tile it will check to see if the next spot in the array is free.  If not, check the next, and so on until it finds a free spot.

This system is by no means idiot proof.  Theres lots of ways you can simply break the level editor in its current state.

Currently the mouse and level editor don't like the screen being zoomed in and out.  There are problems with accessing certain parts of the world space.  And thus revealed my next problem.

The Camera movement system I described in an earlier section is a bit of a life saver, but now its proving to have its own set of problems.  While I don't need to provide an offset value to each bit of art I draw, for everything else such as the level editor and HUD I'm going to have to play with it a bit more.

With XNA, you begin drawing with a function like this... SpriteBatch.Begin(blah blah blah), and then it ends with SpriteBatch.End()

You do all your drawing inbetween the Begin and End.  You can also set all sorts of properties in that section, such as how the sprites are drawn in regards to filtering, if it should be rendered to a texture, etc. So to get around a few problems I simply create a second Begin and End section and draw more in that.  So my gameworld will be in the first section, and the HUD, Editor, Mouse cursor is in another.  That makes everything look correct, but I'll need to a bit of fiddling before it all translates correctly.

--------------------

So next on my list...

* Find some more tilesets and integrate them into the game.
* Make the art selection system a bit better so it can handle multiple tilesets
* More debugging features when in the level editor
* Be able to flip the sprites and save it out.

So actual gameplay is a bit of a way off as you can probably see.  Still yet to think how I'll make a collision system and how you can edit it in the level editor.

But to be honust I'm having a bit of fun making a level editing tool.  You can see it all come togther like lego bricks and its still needing a fair bit of logic, but the eye candy rewards come sooner rather than later.

----------------------

I do want to release a version 0.1 of this soon.  Not sure if I'll do it once I've done a bit more on the editor, or after I have the collision system in so you can actually play a little.
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #13 on: December 25, 2009, 02:50:53 AM »

So these tasks are done

* Find some more tilesets and integrate them into the game.
* Make the art selection system a bit better so it can handle multiple tilesets




I keep thinking of new features to add, such as color tinting, some sort of fancy rotation, etc.  But its not the implementation that I'm now finding hard, all the ground work has been done, so its essentially bolting extra bits on and making sure it works.

The problem I now face is usability.  Theres only so many way you can add keyboard shortcuts to make things happen before you start clicking the wrong keys and making unfixable mistakes.  At the same time I'm not overly creative with my level design and it would be interesting to see what other people come up with.

So I'm going to move onto a basic collision system, get that implemented and have it so characters can walk around in the game world.  Also I aim to have them be affected by gravity.

While this seems as a bit of a mood swing, I'm not able to clearly see what the needed parts of gameplay will be and how it will affect future level design.  So by getting character movement and collision done, I can then start to play with level design and tweak the gameplay values, seeing how each affect each other, until I get a nice balance.

My goal is to get v0.1 out the door soon, so I can start getting feedback as to what to focus on and what I can sort of let slide.  Coming from a game industry background, I have an appreciation for deadlines and milestones and I'm going to try and actually have something ready by the challenge end even if I have to put some features on hold to get a playable game out the door  Durr...?

---------------

Its been good this Xmas, almost all my housemates have gone away, so its been nice and quiet so I can concentrate. :D  Just had a Cherry Coke (I dont think I've ever had one before) so the caffeine has be buzzing a little.

Got a few Fanta and DrPepper flavors to try which I've never seen before.  All from this local supermarket that had a small selection of non-generic soft drinks.

Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #14 on: December 26, 2009, 03:05:52 AM »

Got jumping, gravity, and collision working.

Will write a dev blog about it at some point, probably after I'm done updating the editor section for collision.  Currently still manually putting in collision boxes.
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #15 on: December 28, 2009, 02:42:34 AM »

So I was hoping to have a release done today, but after implementing a few features to the editor, I found there were some massive and very annoying bugs in the system.  Shocked So I spent a good chunk of the day re-writing code and chasing up problems.  Tired

But I can now say I'm a lot happier with the code as its a bit more readable.  Hand Thumbs Up Left Well, hello there!

I'll explain some of the problems and concepts in the next dev update (which is sizing up to be big)

--------------
Quick Run down of the engine features:

In Game art and collision editor:-
      * As in a player can run around and the collision can be placed in the level on the fly
      * The player can then land on that collision
      * The player can even be pushed around by the collision
      * Art can be added also while running around

Grid snapping for art and collision:-
      * Needed for placing art correctly and aligning collision
      * Grid snapping still works even when zooming in and out with the camera

The bugs were mainly co-ordinate system inaccuracies, which was driving me around the bend, but I think for the most part, what I've done now, should last for the rest of the project.

----------------------------

Tomorrow I'm taking a day off from coding for the most part.

But I want to get multiple art layers and collision layers implemented next.  So the code to handle these multiple layers are in and ready to go for when I add stream loading later on.  The idea is you have all these small bite size layers of art and collision (lets call them rooms), and you can trigger loaded rooms on and off.  So you could in theory have an endlessly large level that loads portions of itself as you please, without loading screens or anything.

This includes loading art on the fly as well, so you can see a transition in art styles as you play.
Logged
ChiggenWingz
Level 0
**


View Profile
« Reply #16 on: December 30, 2009, 09:11:12 PM »

Version 0.1 now being released for early feedback.

DOWNLOAD - Version 0.1 http://users.on.net/~infernoraven/hhp/hhp_v0.1.zip


You will also need the XNA 3.1 runtimes if you don't already have them.  http://www.microsoft.com/downloads/details.aspx?FamilyID=53867a2a-e249-4560-8011-98eb3e799ef2&displaylang=en



Controls
* Arrow keys for dog movement
* Press Shift to start Dragon Ai routine
* Numpad Arrows for camera movement
* Numpad 9 or 3 for camera zooming
* [Ctrl + E] start editor mode

While in editor mode
* [Alt + G] to turn on grid (recommended)
* [Shift + G] to turn on grid snapping
* [Ctrl + G] to set grid dimensions and offset
* [H] to toggle tile menu
* Numbers 1,2,3,4 change between different tilesets
* Left click to select tile while in tile menu (you need to close tile menu before you can place tiles)
* [Delete] while a tile is highlighted will delete it.
* [Ctrl + D] turns on tile debugging (kills framerate)
* Right click to clear selected tile
* [Ctrl + S] Save art and tile data
* MAX OF 1000 tiles placed

* [C] to show collision
* [Ctrl + C] to enable collision modification mode.  Drag rectangles for new collision.
* [Delete] while a collision rectangle is highlighted will delete it.
* [Alt + S] Save Collision data
* MAX OF 100 Collision boxes placed

* [A] to show Ai Node debugging
* [Ctrl + A] to enable ai node modification.  Drag rectangle for new ai node
* Numpad Plus and Minus keys while in Ai Node Mod mode to change the type of Ai node to place next.  (currently only Jump_Small works)
* [Delete] while a ai node rectangle is highlighted will delete it.
* [Shift + S] save ai node data
* MAX OF 100 Ai node boxes placed

* [CTRL + Delete] clear all data of collision or art or ai node.

Currently have to restart game after running Dragon Ai

--------------------------------

Theres a lot of usability problems and bugs I'm already noticing.  Yet to decide where I focus my attention to get this game in a playable state before next weekend.

Let me know if you have problems starting it, as I've only done limited testing before I packaged it up.

So much to do on it :S

This v0.1 was pushed out the door as I kept adding more features and wanting to make it more usable, but thats distracted me away from the actual gameplay code.  The aiNode system is the first step towards having the game do what its meant to.
Logged
J. R. Hill
Level 10
*****

hi


View Profile WWW
« Reply #17 on: December 30, 2009, 10:53:55 PM »

I don't know what it means.
 Shrug


Windows XP with XNA 3.1 installed.
Logged

hi
Kazerad
Level 1
*


Should really make more games.


View Profile
« Reply #18 on: December 30, 2009, 11:20:20 PM »

I got it running fine without errors here. Not much there to run so far, of course, but the engine seems solid. I certainly hope automatic camera following is coming, though. It'd be really neat if the zooming was automatic/scripted too!
Logged

ChiggenWingz
Level 0
**


View Profile
« Reply #19 on: December 31, 2009, 06:56:01 AM »

I don't know what it means.
 Shrug


Windows XP with XNA 3.1 installed.

Not sure to be honest, the first thing thats worth checking is what is your graphic card?

I'm assuming you get this when the game starts?  If not, when did it happen?
Logged
Pages: [1] 2
Print
Jump to:  

Theme orange-lt created by panic