And since wanted "more open development/progress report type of contest", I decided to start a progress thread for a game I come up with. Also, forgive me for my bad english, I'm not native speaker.
Ok, let's start this thing with a game's concept. It's hard to come up with original game concept, so I will not be surprised if a game similar to this already exists, if someone know anything then let me know. This is just I come up with about a hour ago, not many details included...nevertheless:
Title: "Function" or "Game of Function" or similar.
Type: Logic game.
Desired ROM size: 16kb.
Mapper planned: UNROM (Mapper 02)
Ok, for the title screen, 3 options available:
Start game-Starts the game. After selecting it, player goes into first level.
Pass-When Highlighted, "Pass" changes to 4 numbers, these numbers can be increased by pressing A and decreased by pressing B. You select number by Left\Right arrows. These are level passwords.
Language-You can select(by pressing left or right) either Polish or English. English is default one.
You can move in the title menu with up\down\select for changing options, A\Start for accepting password\starting game.
The main game:
Main game is based on player selecting a chain of "commands" that will move the Green square. Green square need to make contact with Blue squares in order to "eat" them. Level is completed when all blue squares are eaten. The game's board should be 14x7 pieces big. One piece being 16x16 metatile. The board should be surrounded by a frame. The command available should be at the bottom. The row of selected commands, called "Main Loop", should be under the commands available. Not all commands are available in every level.
But it would be rather boring to just have it like that. There's second row of command selected called "VBLANK". This row cannot be used directly, but have to be "called" from Main loop by the use of "VBL" command. When called, all commands in Vblank Loop are used, when finished, it jumps back to the Main loop. Vblank row should be shorter than main loop.
There should be also third row called IRQ, which works just like Vblank loop, but is longer and is called by other command. Vblank and IRQ loops cannot call each other.
After the board is cleared of blue squares, congratulations text and password for next level shows up. In this state, game waits for player to press either A or Start, after which it loads next level.
Following pieces can be on board:
Green-Can be up to there. This piece moves as it was programmed by the player.
Blue-Collectibles. Collect all to finish current level.
Red-Deadly pieces, Green piece is destroyed if they come into contact.
Solid wall-Blocks Green blosk movement.
Teleport exit-Player gets teleported here after the use of "teleportation" command. Can be ereased if player steps on it.
Following commands can be used:
Directional arrows-Move one piece up\down\left\right.
VBL-Call vblank loop
IRQ-Call IRQ loop
X2 and X3-execute previous command 2 and 3 times respectively. Cannot be stacked.
90º arrows-moves two piece in 90º fashion. For example first one moves up and then right.
Teleportation-Player gets teleported to the Teleport exit piece. Cannot be used unless there's a teleportation piece on board.
After all levels are beaten, game shows simple Congratulations screen. Nothing too fancy, it is supposed to be 16kb game.
What do you think about this...concept thing? WhatULive4, is this what you wanted to see, or I just missunderstood you due to my poor english skillz? At any rate, I'll come up with compression formats tomorrow and some more details.
I think this is an interesting idea, I just don't agree with calling the subroutines being called VBL and IRQ, because VBL doesn't run during VBlank and IRQ isn't interrupting anything, it's simply called. I think it would be better to just call them SUBs or Functions than using these misleading names.
Good point. VBL will then be "SUB" and IRQ will be changed to "FUNC". Thanks for pointing this out.I just don't agree with calling the subroutines being called VBL and IRQ, because VBL doesn't run during VBlank and IRQ isn't interrupting anything, it's simply called. I think it would be better to just call them SUBs or Functions than using these misleading names.
Today I did a mock up for the Ingame screen, sadly, I can't post a pic because of my stupid camera...Anyway, I have a map format. I'm nothing when compared to guys like tepples or tokumaru, so this scheme will probably look lame, but it is best I could came up with. If anyone have any ideas to to improve it, I'd love to hear it
Code: Select all
Map format: Byte0-Control Byte. Divided into: bit 0-Is Main Loop extended? bit 1-Is SUB extended? bit 2-Is FUNC extended? bit 3-Can SUB Loop be used? bit 4-Can FUNC loop be used? bit 5-Can 90º arrows be used? bit 6-Can Multipliers be used? bit 7-Background music bit, as only 2 songs are planned to be played in-game. There's no "teleportation enabled" bit, because teleportation command will get enabled if there is a "Teleportation exit" piece on the board. Byte1-Coordinate byte: bits 0,1,2,3-Horizontal position of piece. bits 4,5,6-Vertical position of piece. bit 7-Next byte is compression byte. Byte2-Compression byte. bits 0,1,2,3-How many pieces to unpack. bit 4,5,6-Unused bit 7-if zero, then compression is horizontal, if 1 then it's vertical. Pieces are unpacked by types. Starting type is Player type. Opcode FE changes current type to next type, opcode FF ends map data. Types are in following order: 1.Player 2.Collectibles 3."Killer" pieces 4.Wall 5.Teleportation exit. Example: 08 0F FE 04 FF - This will: -Enable SUB loop to be used, -place one player at the right upper corner of the board -place one collectible at 4th horizontal position on board. 98 00 FE A2 09 FE 30 FF -This will: -Enable use of both FUNC and SUB loops -change music theme to song01 -place player at left-upper corner of the board -Place 9 collectible items in horizontal line, starting at position 2,2 -Place one Killer piece at position 0,3.
Today, I made some graphics and created some code(nothing major, though).
I assembled graphics together for a ingame mockup screenshot.
The brick wall was ripped from opengameart entry
It's C00, to I suppose it is ok with compo rules.
Most of things has been done. I have title screen, password input and generation, language selection, hardware tests, PC level editor, and about 16 levels done.
-Write Credits\Congratulations screen.
I'm super positive to finish within compo's deadline.
Here, you can download public build of Function.
I'd love to hear opinions and ideas for improvement.
Yes, you are right. I'll change main loop to "MAIN"
"LAST M" stands for Last Main. This new command can only be used in SUB function. It will call the last MAIN command that was used before calling SUB.For example:
Main:Right, Sub, Down, Sub
Sub:Last M,Last M,Last M
As a result, Player will move 4 pieces to right and then 4 pieces down.
The use of Last M is essential to complete some levels.
My only complaint is that I found it to be annoying when all the commands are erased when you fail a level.
And just a couple of other things to mention.
The game froze after beating, what I assume is, all the levels currently in the game. I'm guessing this is expected behaviour though.
The graphics for the cross, used when commands are locked, might look better if it had less contrast. Right now, when there are multiple crosses, it looks too busy. Try replacing the bright yellow pixels with a darker colour and see how it looks.
Regardless, I liked the graphics and had a lot of fun playing it.
I'm looking forward to see more progress
At any rate, I'm not sure if I'm allowed to post a link to the game, so Function will be available for download at the compo website after the judging.
Oh, and by coincidence, I have found this flash game. It has familiar gameplay to Function.
This has been adressed and no commands are erased when player fails, thanks for pointing this out.My only complaint is that I found it to be annoying when all the commands are erased when you fail a level.
Yes, I forgot to do something about it, stupid meThe game froze after beating, what I assume is, all the levels currently in the game. I'm guessing this is expected behaviour though.
I actually (slightly) upgraded all icons graphics.The graphics for the cross, used when commands are locked, might look better if it had less contrast. Right now, when there are multiple crosses, it looks too busy. Try replacing the bright yellow pixels with a darker colour and see how it looks.