Well, I kind of lost the inspiration to work on my Simon CE game that I was making a couple weeks ago and decided I would start on a new game that I had been thinking of making for quite some time. Over the past three days or so, I whipped up the start to the plan I envision.

Style: The plan is to make this game similar to a simple maze in which you control a player (green) and attempt to make it to the exit. However there is a catch. Your character cannot see the entire maze, only down pathways that you've had vision of. All else is blackened out and undiscovered. Likewise, there are evil red cubes that are out to get you!

The game is still in very early stages. So far, I have worked out a way to have tile commands that cause enemies to change direction as well as player movement/wall detection. The actual hidden maze part is yet to be made.

I plan on making an editor and appvar loader too so users can load more mazes in their calculators but that still has work to do (actually, all work because I haven't gotten there yet). Each maze is about 2200 bytes, give or take a few.



I was considering on entering this into CC23 (I started it the day after the contest began) but wasn't sure if it is "spy" worthy. Let me know what you think!

Edit: Can a mod move this to contests?
It will depend on the judges, though they were very liberal with the requirements of the last contest (there wasn't a whole lot of sprite designing going on) - so it's definitely a possibility!

I could see this being adapted as a spy/stealth game easily.

Looks great in any case!
This could easily fit the contest restrictions. Just think:
-you, a small green square, are trying to get through a maze in a top-secret office building.
-red squares, or guards, will stop at nothing to catch you.
-You haven’t been in this part of the building before, so you’ll have to tread carefully until you find your way around.
Then at the end of the maze, you could have some treasure and the user could get points. As the levels went on, the mazes could get gradually more difficult, with more guards. These levels would give more points, all contributing to a final score of mazes completed or difficulty points.

Looking forward to seeing how this turns out, CC23 or not.
I decided I will include this in CC23 and leave it up to the judges to determine stealthiness. Today I made a remarkable amount of progress. Much of the gameplay is in place now, although the graphics get a little messed up when the player is against the left or top wall. My original plan was to have the player's view be circular but doing so proved to be too difficult for me for now.

Currently, the limited view is being done by filling a 3x3 block size square around the player with white and then re-drawing the 5x5 tiles around the player to account for the player not always being perfectly center in a block (each block is 5x5 pixels). This is also what is causing the errors when the player is near/against the two walls because the index in the array for block two rows/columns above/below does not exist. Working on writing an alternative redraw loop for when the character is against these two walls.

Once all the gameplay is done, I will work on adding an appvar loader and HOPEFULLY an on-calc level editor to make appvar levels.

Eye Candy:


Yes, I know the enemy is currently leaving a white trail. I have just been too lazy to fix it so far.
Took me a while but I was able to figure out the problems with the left and top walls so now that is working how it should be. It turns out getting rid of the white trail left by the enemies is a little more difficult than expected as simply filling it with black wouldn't work when the tiles have been "discovered."



Following the Partial Redraw guide seems to be the best option for me (I think). If I did so, would I need a separate background sprite for each enemy or is there a better way to tackle the problem?
Over the past two days, I was able to make tons of progress on the game part. For one, I decided on how I wanted the bottom bar to be as well as what information to show on it. I'm working on a victory message box (as seen in the screenshot) as well as implementing a timer to determine how well you do. Collision detection with the exit has been added but not with the enemies (this should be super easy I just haven't gotten around to it). I'm working on a DEMOPACK appvar which will include a few levels. With the levels removed and stored in an appvar, the program is less than 6KB. Once the game aspect is completed, I will start working on the on-calc level editor.

Nice work! I have always liked mazes where you had to find you way out without being able to see the entire maze. The level editor will be an excellent addition, too.
I'm proud to say that the game element of my entry is complete! I spent the last few hours getting the appvar selection working for map packs and I think it is stable enough to finally work. I still have to include the entire on-calculator map editor/maker, however, and luckily there is still (hopefully) enough time for me to do that.

Also, here is the code I used for finding all appvars that are tagged with being a map pack (I used "MMZ" to denote which appvar to select and then offset all reads/writes by the size of the tag.

Code:
void findAppvars(){
    char *varName;
    uint8_t *search_Pos = NULL;
    const char search_String[] = "MMZ";
    while((varName = ti_Detect(&search_Pos, search_String))){
        file = ti_Open(varName, "r");
        ti_GetName(packs[numPacks], file);
        ti_Close(file);
        numPacks++;
    }
}

An array of strings (or 2D chars) is made of all the appvars that it finds.
A little more optimized:


Code:
void findAppvars(void) {
    char *varname;
    void *searchpos = NULL;

    while ((varName = ti_Detect(&searchpos, "MMZ"))) {
        strcpy(&packs[numPacks++], varname);
    }
}


Can you tell us what the definition of the "packs" variable is? I think there's something wrong Razz
Well my time spent on this has decreased immensely due to classes actually starting up and homework/tests building up but I feel I am at a point to finally post another update.

Only a little progress has been made but still a fairly visible amount. I think I have a GUI picked out for the level editor. the plan is to have the tiles to pick from be on the right with some of them on hotkeys 0-9 (if time permits I will add the ability to change what each key points to, but this is unlikely to happen). I was having a difficult time coming up with a color scheme for everything as well as making the actual tiles because I'm working with 5x5 tiles and need to make 15 distinguishable tiles yet still follow a pattern that makes them easy to recognize. I decided on making spawn enemies red with an arrow for which way it will spawn facing and enemy direction tiles pink with what each does with a different symbol. I will include in the README a more detailed description of what they all do.

It's somewhat difficult to figure out what some of the enemy commands are when they are right next to each other but they won't be so packed together in actual levels (assuming people are actually good at making levels). If anyone has some suggestions for things such as color changes or anything along those lines, please let me know!

Edit: Ended up actually doing a lot tonight even thought I have part two of a physics test tomorrow at 8am. I THINK that all I have left is mainly saving (as)/appending/overwriting left which I am super proud of because then that means I can go back and make some things faster/more polished.
Looks great so far! I'm definitely interested in downloading this when it's finished, or even a beta version if you want some help with testing.
I've spent a fair bit of time on the saving and decided it would be best if I did each part separately and then combined after. I mostly got the saving working, but save as has been a different struggle. The main problem is in creating the appvar for saving.

Code:
void saveAs(){
    uint8_t i = 0, skKey;
    const char *chars = "\0\0\0\0\0\0\0\0\0\0\0WRMH\0\0\0\0VQLG\0\0\0ZUPKFC\0\0YTOJEB\0\0XSNIDA\0\0\0\0\0\0\0\0\0";
    char newPackName[8];
    gfx_Begin();
   
    gfx_SetDrawBuffer();
    //Code setting up graphics omitted
    gfx_SetColor(0);
    while((skKey = os_GetCSC()) != sk_Enter){
       
        gfx_FillRectangle_NoClip(136, 14, 44, 8);
        if(chars[skKey]){
            newPackName[i++] = chars[skKey];
           
        }
        gfx_PrintStringXY(newPackName, 136, 14);
        gfx_SwapDraw();
        gfx_BlitScreen();
    }
    os_CreateAppVar(newPackName, 0);
    gfx_End();
}

The code is intended to allow the user to type in the name of the appvar they wish to create. I removed the check to make sure the name wasn't more than 8 characters for testing purposes (essentially an if i < 8 statement). There are two problems, however. the

Code:
gfx_PrintStringXY(newPackName, 136, 14);
prints a bunch of crazy characters and nonsense (Picture 1) and the
Code:
os_CreateAppVar(newPackName, 0);
creates an appvar with a bunch of random characters after it (Picture 2). I originally thought that using file = ti_Open(newPackName, "w"); was causing the problem so I switched to CreateAppVar but this didn't fix it. Because of this, I predict it is a problem with the null characters in newPackName but I'm not sure how to avoid this. Please post any tips or suggestions to help.
You need to null-terminate the string with a zero. Change it to char newPackName[9]; and add newPackName[i] = '\0'; upon exit of the while loop (or after the newPackName[i++] = chars[skKey]; line if you want to make the string print work too).
I believe I'm at the point where the game is essentially finished. I got saving working and added a warning if the map being made hasn't been saved (you need to press Clear twice to exit the editor with an unsaved level). Likewise, you can now exit the save (as) selector if you accidentally pressed it. I'm going to wait to submit it until later, however, because I want to try to shrink it down (currently almost 12 kilobytes) and add some more features if I can think of them. Anyways, here's a screenshot of the finished editor!
  
Register to Join the Conversation
Have your own thoughts to add to this or any other topic? Want to ask a question, offer a suggestion, share your own programs and projects, upload a file to the file archives, get help with calculator and computer programming, or simply chat with like-minded coders and tech and calculator enthusiasts via the site-wide AJAX SAX widget? Registration for a free Cemetech account only takes a minute.

» Go to Registration page
Page 1 of 1
» All times are UTC - 5 Hours
 
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

 

Advertisement