Ace Recon

Overview
Ace Recon is a game for the TI-84 Plus CE/TI-83 Premium CE that I have been working on for almost two months now. It is written in C, and was started for Cemetech Contest 23 (themed "Stealthy Spies"). In this game, the player must sneak through 20 floors of an office building, where each floor is more difficult than the last. Guards patrol these floors, and will come in several different types, such as sniping guards and chasing guards. In its final state, the game will come with 20 default levels, as well as (hopefully) the ability for players to create their own level packs that can be played within the game. Stay tuned for more information, however.

General Plan for Release
Ace Recon started out as my CC23 entry, but in that state, was unfinished. I promised more updates, and they are currently in the works to complete the game, make it more optimized, make it more fun, and make it more strategy/stealth based. I will post more updates as time goes on, but here's the general plan for now:
1. private beta release, somewhere around 10 people will be allowed to test the game and give feedback on it
2. public beta release
3. launch
I have made a great deal of progress since CC23, but I don't want to share anything just yet. I will somewhat soon though, or at least before the first beta.

Progress for November 25
-pre-beta release

Latest Screenshot


Progress
Optimization 100%
Level Editor 95%
Guard types 100%
Actual sprites 100%
Status 1.0 archives release is imminent.

Conclusion
As always, I am looking for feedback, so any would be appreciated. The CC23 version is available for testing right now if you want to test out the basic game mechanics. Stay tuned for more information in the coming days/weeks.
Some screenshots of the new item shop and the updated gameplay screen:

Looking pretty nice! Are you thinking of using actual sprites for the player and enemies?

Keep it up! Smile
MateoConLechuga wrote:
Looking pretty nice! Are you thinking of using actual sprites for the player and enemies?

Keep it up! Smile


Yes, that will be in the game before the private beta. I kept the circles for now because it's easier to see angles with them, and because I have been focusing on other things for now.

I really should do that, though.
Progress for today:
-optimized the game significantly, now runs around 50% faster for a maximum of 32 FPS
-implemented the speed and rotation upgrades
Ace Recon is almost ready for private beta release, hopefully within the coming weeks. If you are interested in testing the latest developmental version of the game in a few weeks, please PM me with an email address I can send the file to. I will post a screenshot showing all of my progress in a few minutes.

EDIT: Screenshot:


EDIT 2: Some information regarding the new game modes:
Classic This game mode is somewhat similar to that submitted for CC23. The player has to sneak past guards in 20 levels while staying alive. However, rather than having an unlimited number of bullets as in the Chaos mode, the game starts with 10 bullets, then doles out 5 more for each completed level. This will ideally encourage more strategic and stealthy gameplay. The Recon Shop and its corresponding powerups are unavailable in this mode.

Chaos This is a new game mode. The player has unlimited bullets which can be used to shoot guards, which drop coins when they are eliminated. When the coins are picked up, these coins can be used to buy upgrades in the Recon Shop, such as bombs, speed increases, and bouncing bullets. As in the classic mode, stealth is still important, and 10 bonus points are awarded for completing a level without being seen by any guards.
I know it's been a while, but here's some progress on the level editor, which has been my main focus on this project recently:


I also added bombs in the main game, but I don't feel like that is enough progress to warrant another screenshot (although they're pretty cool).

Finally, I want to make it very clear that not all of the code for this level editor is 100% mine. I am using heavily modified versions of the "saveAs" function from makeller19's Mystery Maze for the appvar creation, and BasicTH's "findPacks" function, also heavily modified, from Sketch Maze. If either of you have any questions about how the code is used or a request to take it out, let me know. I figured since it was publicly available, it would be fine, but I understand if that is not the case.
After some thought, I have decided to cancel the private beta test, since there was only one applicant. The public beta will still happen after I make some more progress on the main game and finish the editor, which should happen within the next few weeks.

Progress for today (for the editor):
-fixed some issues where you could load an unnamed appvar
-added checks to see whether a created appvar already exists and displays an error message if it does (so you wonโ€™t overwrite Cesiumโ€™s data or something)
-added an option to choose the number of levels in the pack, previously, it was always 20

I may add some more things later, I only worked on this for 45 minutes or so today.
I feel like this is a good time to ask for some feedback on the build I have now, so here is a pre-beta release for Ace Recon (a somewhat old developmental build). If you play this, I would appreciate any feedback you have, which can be posted in this thread. More information is outlined in the readme of the download, so read that too.

And I know there aren't any sprites yet, please don't yell at me. They are coming before the beta, as I said earlier. This is a pre-beta. The official public beta will come later, once I add some more features, such as implementation with my map editor.

Here is the link: https://drive.google.com/open?id=1ddo7WZhLzgljfxRY1cewl0Jag27w5tWR
A few things I've noticed:
The main menu animation, like the rest of the game's UIs, is absolutely stellar, but it freezes whenever you press an arrow key. Also, it would be nice if you could use either 2nd or enter for menu buttons.
As for gameplay, the tiles look really good, and the layouts are interesting. It's also quite fun to try and avoid the guards. The controls are a bit hard to use on a physical calc, in my opinion, but I don't think there's really a better option for this type of game. Tanks! uses a separate firing direction from the facing direction, which only really works because tanks have a really visible barrel to indicate direction.
I've also noticed a few issues with collision detection. At one point I got stuck in a wall and couldn't get out without restarting, and a few other times I got partially stuck and had to turn around in order to exit the wall. The player's circle also appears to sink halfway into the walls. You can also sometimes end the level by walking into the wall at the bottom right of the level when the exit is in the top right of the level. I'm guessing that this is an integer overflow error.
The AI is also a really poor shot. It consistently hits a spot a few pixels off from me when I'm too far away from this. I'm guessing that this is caused by rounding either the angle which the bullet must be fired in to 8 bits or the velocities of the bullet to the nearest pixel. The AI is also somewhat easy to bypass by just running straight past it. I figure that you could probably make it a bit more difficult by increasing the FOV in which it "sees" the player, or by adding some kind of "noise" mechanic where some floorboards are creaky, or something.
For the shop menu, it was a little unintuitive for the y= and graph keys to scroll. Maybe you could leave a gap between the names of the items, and then add arrows above each of the keys that scroll.

I'd love to take a look at the source code, if you are willing to make that public.
He does have a public release here. Granted it's an "old" version, but the source is included in the download. Just scroll down to the link in the description of his game, download the file, and open his "source.txt" file.
commandblockguy wrote:
A few things I've noticed:
The main menu animation, like the rest of the game's UIs, is absolutely stellar, but it freezes whenever you press an arrow key. Also, it would be nice if you could use either 2nd or enter for menu buttons.
As for gameplay, the tiles look really good, and the layouts are interesting. It's also quite fun to try and avoid the guards. The controls are a bit hard to use on a physical calc, in my opinion, but I don't think there's really a better option for this type of game. Tanks! uses a separate firing direction from the facing direction, which only really works because tanks have a really visible barrel to indicate direction.
I've also noticed a few issues with collision detection. At one point I got stuck in a wall and couldn't get out without restarting, and a few other times I got partially stuck and had to turn around in order to exit the wall. The player's circle also appears to sink halfway into the walls. You can also sometimes end the level by walking into the wall at the bottom right of the level when the exit is in the top right of the level. I'm guessing that this is an integer overflow error.
The AI is also a really poor shot. It consistently hits a spot a few pixels off from me when I'm too far away from this. I'm guessing that this is caused by rounding either the angle which the bullet must be fired in to 8 bits or the velocities of the bullet to the nearest pixel. The AI is also somewhat easy to bypass by just running straight past it. I figure that you could probably make it a bit more difficult by increasing the FOV in which it "sees" the player, or by adding some kind of "noise" mechanic where some floorboards are creaky, or something.
For the shop menu, it was a little unintuitive for the y= and graph keys to scroll. Maybe you could leave a gap between the names of the items, and then add arrows above each of the keys that scroll.

I'd love to take a look at the source code, if you are willing to make that public.

Thanks for your feedback, commandblockguy!

-The menu issue can be pretty easily solved by using rising edge detection instead of falling edge detection, and I would be happy to make [2nd] a confirmation key in addition to to [enter], as I already considered that but didn't implement it.
-The collision detection issues are mostly due to the fact that collision detection is only for the pixel in the center of the circle, which will later be fixed. The issue with getting stuck in blocks is due to the fact that you can move forward and turn in the same loop, and the collision detection is based on the assumption that you won't rotate when you are moving. It should be an easy fix though.
-The AI's poor marksmanship is actually an issue with the bullets. When they are fired, they are assigned an x increment and a y increment to move each loop according to the angle they were fired at. So, the AI should be perfectly accurate, but the bullets don't allow it to be. I can fix that by using floats instead of shorts for the x and y increments, though.
The overflow bug can be pretty easy fixed by using uint16_ts instead of shorts for the tile detection.
-Finally, I will fix the UI for the shop to add those arrows as you suggested. I originally intended for the box to hold a sprite representing the item in addition to its name, but the ease of use of the interface is probably more important.

Kaluwolf, that download is an old version, and as such is not representative of the current build of the game, which is more optimized and (I think) better structured. Most of the bigger issues with that build have been fixed, so I don't think that it would be worth the time to look at unless you're wondering how it works. Thanks for posting the link though.
For the love of everything don't use shorts or [u]int16_t.

Unless you want your code to be slow garbage.
MateoConLechuga wrote:
For the love of everything don't use shorts or [u]int16_t.

Unless you want your code to be slow garbage.


I donโ€™t want my code to be slow garbage, what should I use instead?
uint24_t
epsilon5 wrote:
MateoConLechuga wrote:
For the love of everything don't use shorts or [u]int16_t.

Unless you want your code to be slow garbage.


I donโ€™t want my code to be slow garbage, what should I use instead?


UDXS wrote:

uint24_t


int
/me runs
I think I broke something:
The project is now on Github:
https://github.com/epsilonfive/Ace-Recon-CE

With that said, would someone mind helping me out with the "RenderBullets" function? I switched to partial redraw for speed, but I can't seem to get it working without leaving massive, permanent trails across the screen. I feel like it may have something to do with the fact that the array of bullet structures can be altered mid-loop, but I'm not sure. I've spent a few hours trying to fix this today to no avail, so I feel like it may be time for someone else to have a look at it. Thanks in advance.
It's really hard to help you with code when it isn't easily compilable nor have any of the other suggestions been even considered.
  
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 2
» 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