Author Topic: A clean game  (Read 40370 times)

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #45 on: 2010-05-23, 09:14:12 AM »
I've added a new enemy type -- a spider that drops down on the player (when the player is below) from a web it creates as it falls, then crawls back up.  This project is still not really a playable game but mostly a collection of sprite definitions so far.  But it is playable enough so you can at least see how each sprite works.  I think the sprites are importable into other projects without too many or any modifications required, so feel free to pick these up in your own projects.
http://sgdk2.enigmadream.com/ben/CleanGame.zip

I tried importing the spider sprite into the sample game, and it wasn't *quite* as straightforward as I'd hoped, but it only took a few minutes to straighten out the missing pieces.
« Last Edit: 2010-05-23, 09:25:41 AM by bluemonkmn »

Vincent

  • SGDK2 Addict
  • Expert
  • Fanatic
  • *****
  • Posts: 612
  • Legacy of Kain: Revival is completed!!!
    • View Profile
    • Chivalrous Games
    • Email
Re: A clean game
« Reply #46 on: 2010-06-13, 08:27:24 PM »
Hi Bluemonkmn!

I just tried your new version of the clean game!  It's very interesting to see all these sprites interact with one another.  I especially like the bomb that make boxes explode, then the exploding boxes light fires, then a rocket all in a chain of reaction, very cool! :)  When I got to the spider, it didn't drop very far down, since I was walking on a branch of the tree that grows right next to it. 

What do you plan to do next? :)
Legacy of Kain: Revival completed!
http://lokrevival.webs.com

See also my company website:
http://chivalrousgames.com

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #47 on: 2010-06-14, 07:08:04 AM »
I think the spider stops dropping when it hits a solid, and I think it sees the tree branch as solid.  I could probably change that with another solidity definition, though.

Next... as usual, I have no specific plans for what's next.  At some point I need to start making a game out of this instead of just a collection of sprites and tiles to test the features.  But before I do, I want to have a relatively complete set of sprites.  And I'm not sure this is complete yet.  I'm having a hard time thinking of how these elements can be combined into puzzles and challenges.  But maybe that's just because I haven't really tried yet.  I did have another big idea that I want to get into a game, though:

Build your own creature -- as you play.  I originally thought of this as something analogous to nano-robotics.  You collect molecules that behave in certain ways and then release them into the level to form something that will help you past an obstacle.  For instance, if there is a bomb on a ledge above you (that you can't reach) that will ignite a fire that will melt some ice to drop a seed that will grow a tree so you can climb up, you need to figure out how to ignite the bomb.  Crawling in front of the bomb is a worm.  Maybe you have a molecule that reacts with a bomb to ignite it, and a molecule that is attracted toward a worms, and a host molecule that can attach to two other molecules.  So you drop the host molecule, then drop the igniter molecule, then drop the movement molecule, and let it go to work.  They both attach to the host, and then the whole molecule is attracted to the worm, and when the worm passes the bomb, with the igniter molecule following it, the bomb ignites.

But I need to think of a good general-purpose set of molecules that can be used to create a wide variety of "creatures" without too much effort (development effort or playing effort).  These creatures need to be useful in solving puzzles and getting past obstacles.  I'm really interested in seeing complexity arise out of simplicity the way you see in John Conway's Game of Life, or Mandelbrot.

Vincent

  • SGDK2 Addict
  • Expert
  • Fanatic
  • *****
  • Posts: 612
  • Legacy of Kain: Revival is completed!!!
    • View Profile
    • Chivalrous Games
    • Email
Re: A clean game
« Reply #48 on: 2010-06-14, 07:22:20 PM »
Wow, I had a lot of fun by fooling around with John Conway's game of life.  I could spend hours with this!

Your idea of collecting and assembling molecules is great! :)  It seems like a lot of work to make all the sprites interact with one another, but once you have a good set, you can make a lot of puzzles with the same molecules.  Can't wait to see that!  But I guess I will have to... ;)
Legacy of Kain: Revival completed!
http://lokrevival.webs.com

See also my company website:
http://chivalrousgames.com

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #49 on: 2010-06-27, 03:34:56 PM »
I have uploaded my next update to http://sgdk2.enigmadream.com/ben/CleanGame.zip.
It's probably pretty difficult for anyone to figure out how how to use/play this project now without a lot of help, so my next step will be to make a better sample/tutorial level to play with.

But here's what you can do now.  The meaning of Space Bar and Enter keys have changed.  Space bar now selects an inventory item, and Enter uses/deploys it.  (Right now you have unlimited inventory.)  The currently selected inventory item is displayed at the top.  These are the items:
1. Bomb: same as before, lights a fuse and blows up when it burns up.
2. Nanobot constant power supply.  This will automatically seek and attach itself to the nearest Nanobot and provide 200 units of power.
3. Nanobot destructor.  Automatically seek and destroy the nearest Nanobot.  Wouldn't want your Nanobots overrunning the world!
4. Nanobot mover - Follow mode.  Center of a nanobot is responsible for movement.  When an attached power supply is supplying power, this will move the bot and all its attachments toward the nearest enemy.  (There are other movers, but the player can't deploy them yet; I haven't tested them.)
5. Nanobot collision power supply.  This is a power supply that only supplies power when it's touching an enemy.
6. Nanobot splashy power supply.  This is a power supply that only supplies power when it gets wet.
7. Nanobot bomb dropper.  This attaches itself to the bottom of the nearest nanobot mover.  When this bot is supplied with a unit of power, it drops a bomb and disappears.
8. Nanobot water dropper.  This attaches itself to the bottom of the nearest nanobot mover.  When this bot is supplied with a unit of power, it drops a drop of water and disappears.

Power supplies will terminate if they hit any solid.
If the Nanobot mover to which a power supply is attached disappears, a power supply will seek the next nearest nanobot and re-attach itself to that (this may change -- not sure if this is a good idea).
Bomb or water droppers will terminate if it hits any solid that prevents it from reaching its destination.
Nanobot destructors can only be stopped by a biohazard tile or another destructor.
Nanobot movers will react to solidity and will terminate only when hitting a nanobot destructor or biohazard.

Vincent

  • SGDK2 Addict
  • Expert
  • Fanatic
  • *****
  • Posts: 612
  • Legacy of Kain: Revival is completed!!!
    • View Profile
    • Chivalrous Games
    • Email
Re: A clean game
« Reply #50 on: 2010-06-29, 11:41:47 AM »
Hi!

I was playing around with all the nanobots and eventually, I was surrounded with many nanobots part (still trying to figure some of them out).  I spawned a nano-destructor to clean the place up a little and I got this error: Attempted to access PixelX on an inactive sprite.  The nano destructor probably spwaned right on another nanopart when it happened.  I'll restart the game and try some other things. :)
Legacy of Kain: Revival completed!
http://lokrevival.webs.com

See also my company website:
http://chivalrousgames.com

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #51 on: 2010-06-30, 04:45:53 AM »
I got that error once, but was unable to reproduce it.  If you can figure out how to reproduce it, please let me know.  I don't think it had to do with the position, but which other bots were "attached" to the bot that was destroyed, and what order they were created.

Vincent

  • SGDK2 Addict
  • Expert
  • Fanatic
  • *****
  • Posts: 612
  • Legacy of Kain: Revival is completed!!!
    • View Profile
    • Chivalrous Games
    • Email
Re: A clean game
« Reply #52 on: 2010-06-30, 07:53:38 AM »
Here is a way to reproduce it:

1- Drop a water generator nanobot: green circle with drop of water
2- Drop a bomb nanobot: small bomb
3- Drop a auto-generator: green circle only.

When they merge, it crashes.

It does the same if you replace the water generator (1) with a collision-generator or the nanobomb (2) with a drop of water.

I guess the program doesn't like to have an auto-generator with another generator on a nanobot.

I hope it helps! :)
Legacy of Kain: Revival completed!
http://lokrevival.webs.com

See also my company website:
http://chivalrousgames.com

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #53 on: 2010-07-02, 05:21:21 AM »
Thanks!  Found and fixed the problem (locally).  The problem is that when a generator is attached to a sprite, it will try to force the attached sprite to process its rules before positioning itself next to it (in SpriteCustom.cs, the "StickToAttached" function calls ProcessRules before doing the rest of the work).  But ProcessRules can cause the sprite to terminate itself.  So to fix it, I simply moved the code above that checks "if (RidingOn.isActive == false) ..." below ProcessRules.  Then it works fine.

tprime

  • Fanatic
  • ***
  • Posts: 395
    • View Profile
    • Email
Re: A clean game
« Reply #54 on: 2010-07-03, 10:27:42 AM »
I wanna try making something with this!  ;D

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #55 on: 2010-08-22, 06:56:02 AM »
Is this game between genres?  When I think about it, I may be trying to combine elements of RPG/adventure, puzzle and side-scroller games into one game.  I noticed this when I was trying to figure out what to do about inventory.  What to do about inventory the player finds in one level when the player visits another level?  You can't be using items intended for solving one puzzle in solving another or it will be too easy.  I tried to think what other games do with this, and realized that I don't know of any other games where the inventory acquired in a side-scrolling level are necessary for solving puzzles, and can be retained between levels.  Any thoughts?  I kind of like the idea of *having* the option of having to go to other areas to find items to solve puzzles.  That's what RPG and adventure games do.  But they have a much wider variety of items.  But I don't really like the way "Key Items" in RPG games like Final Fantasy are good for nothing besides getting past a certain point in the story/game.  I like normal items that you can collect and actually use however you like.  I have to be careful not to let the player get stuck, having mis-used all of a particular item and then being unable to find any more, but I also have to be careful to not make it too easy to find the item.  So maybe I will put items in other areas with some challenge to get them, but then they come back if you re-visit the level.  That works for relatively rare items, but what about overcoming common obstacles in every level.  I can't put all the bombs in one area.  It would get boring having to go back there to get bombs all the time.  I'll keep thinking.  Maybe each level needs a gate that resets certain inventory to certain levels.  That seems a bit like cheating (as a game designer), and makes planning how you want to *play* the game less interesting.
« Last Edit: 2010-08-22, 07:02:54 AM by bluemonkmn »

durnurd

  • Lead Lemming
  • Expert
  • Fanatic
  • *****
  • Posts: 1234
  • Games completed so far: 0
    • MSN Messenger - durnurd@hotmail.com
    • View Profile
    • Find My Ed
Re: A clean game
« Reply #56 on: 2010-08-22, 08:29:07 PM »
The idea of limiting inventory might be achieved with, and I'm sure you'll love this idea, more inventory!  For example, if you need a certain amount of liquid nitrogen to get past a certain puzzle in location X, but it can only be found in location Y, then you have to have a container that can only hold a certain amount of it, which you could pick up at location Z, bring to location Y to fill it up, then go to location X to use it.  Its (correct) use could destroy the container so that you can't re-fill it again, while incorrect use would allow the container to be refilled.

Another option would be to have inventory with an expiration.  You can impose some "time" limit on an item.  If you go walk too far with it, it spoils, or goes bad, or evaporates, or solidifies, or runs out of power, etc. etc., so you have to find a nearby source of the item to use it in a certain puzzle, and you can't just stock up on it.  It's something like your gates, but with less of a "cheating" feel to it.

You could add more items to extend the life of certain items at the expense of, I suppose, money, or something, so if you have enough money, you can buy more batteries so it doesn't run out of power first, or something.  Or you can take batteries out of one item and put it in another, so that you can transport it farther, rather than using the nearby but harder-to-reach source.
Edward Dassmesser

bluemonkmn

  • SGDK Author
  • Administrator
  • Fanatic
  • *****
  • Posts: 2761
    • ICQ Messenger - 2678251
    • MSN Messenger - BlueMonkMN@gmail.com
    • View Profile
    • http://sgdk2.sf.net/
    • Email
Re: A clean game
« Reply #57 on: 2010-08-23, 04:57:41 AM »
Interesting ideas indeed.  I haven't been designing many levels lately, so it's just a fear I have at this point, but if and when I run into a real concern about having too much inventory too easily, I will have to consider these solutions.  I kind of like the "container" idea or some variation of it... requiring another item in order to use the items.  Another idea that this triggers is that items only work in a certain environment.  For example, maybe some bombs only work in an oxygen atmosphere because they have fuses that combust normally.  So there could simply be another kind of bomb if I really want to control where they get certain bombs.  Of course I'd want to limit the number of cases where I use that kind of solution.  The inventory has a limited size, and I don't want it to be full of different kinds of bombs only.