You are browsing as a guest. Sign up (or log in) to start making projects!

ShinyMist

@ShinyMist

Joined July 2nd, 2026

  • 33Devlogs
  • 2Projects
  • 0Ships
  • 0Votes
Coding novice, but I'm sure i'll knock your socks of (;
Open comments for this post

9h 23m 5s logged

Dev Log #33
.
As you can probably guess, I have done alot

I have done the following:

• Gave all levels the correct level variables
• Made buttons work correctly when rotated
• Made teleport bullets work as intended
• Made gates and broken tiles allow bullets to pass through when collision is removed
• Created an EXE file of my game for friends to use for playtesting
• Made a stat tracker to use playtest information to improve my game
• Corrected all file directories that had to be moved for PyInstaller to work properly
• Fixed the Easter egg room so it now loads correctly
• Added AI declaration comments and a Google Doc

That is a lots, so let me quick fire explain how i did them

  1. Painful repetition, change variables, restart level, change tiles, reset level, change ability position, reset. Repeat for level in levels (do this 50 times)
    .
  2. This was partially assisted by AI, but from what I understand the buttons’ Tiled rotation number is used to adjust the collision rectangle’s position so it matches the rotated button object in tiled. Collision check works as did previously.
    .
  3. Teleport bullets originally tp the player if a bullet fired priviously hit a way after pickup, despite no bullet being fired after pickup and also sometimes caused the player to shoot downwards through tiles.
    .
    I fixed the wrong bullet tp by using a self.variable rather than a global one as previously, allowing each bullet to know if they were teleport enabled, rather than all bullets being teleport enabled.
    .
    The tile collision isssue was fixed by by moving the player backwards along the bullet’s path until they are outside the tile, preventing the gun from passing through walls and being pulled down
    .
  4. This one will just explain itself (if tile in list, then ignore kill on contact):
for tile in Tiles.tiles:
    if self.rect.colliderect(tile["rect"]):
        tile_property = tile["property"].get("type")

        if tile_property in Tiles.open_gates:
            continue
  1. This used pyinstaller, not something i really code or anything so, I’ll just say i did it sucessfully
    .
  2. Stat tracker records bullet count, time and deaths/restarts that a level took on completion. Difficulty of a level can also be decided by a play tester by pressing any number button during a level.
    .
    This data is level specific, and on key press of /, will create a json file that holds all the data, which can then be sent for me for review of things like bullet max, time complete bonus time, ect.
    .
  3. Self explanatory, just changed things like “Image/buttn.png” to “Game/Image/button.png”
    .
  4. Restart all function was required in load room function as it contains map load, so the level map that was supposed to load is not displayed instead of the secret easter egg map.
    .
    9.Should have declared AI useage earlier, but i have been documenting it myself to ensure I don’t become over reliant, by comments and doc will show clearly what is AI assisted and what was made entirly by me
    .
    That’s all, gotta try and keep my daily streak alive this time to score myself a free plush
2
0
62
Open comments for this post

3h 32m 36s logged

Dev Log #32
.
Made 50 levels today, that is all.
.
Every 3 levels, a new ability/feature is added. This allows the player to get used to the new thing added, making their later appearance managble as the player is now used to how they function.
.
I have not set the player and goal location co-ordinates for each level, or other variables like if mini stars are required.
.
That’s all for today.

0
0
9
Open comments for this post

2h 13m 6s logged

Dev Log #31
.
I AM FINISHED!!!
.
Well, pretty much at least.
.
Today I:

Completed the Waiver
Made some more levels

I made it so that the text box works with word wrap, enter key and backspace key.
.
I did this by splitting the text into words and lines, then checking each word’s width against the rect boundaries.
.
If the word exceeds the boundaries x, the texts’ x position is reset and the Y-coordinate is incremented, creating a new line.
.
The Enter key creates a new line by resetting x and incrementing y, while Backspace removes the last character from the text string, preventing it from being displayed.
.
The waiver now checks if all fields are filled and allows you to press a button that is connected to a hyperlink that will, in the future, take you to a video created my me showing how each level is complete.
.
Also made 12 levels today, each new feature is slowly implemented one at time.
.
That’s all for today.

0
0
28
Open comments for this post

2h 43m 4s logged

Dev Log #30
.
The big 30!!!
.
Done quite a bit today, just last bit of polishing and then we move towards UI, music, level design, ect.
.
Today I:

FINISHED THE DIALOGUE SYTEM
Added a leave waiver button (was a softlock)
Added a text box to waiver [WIP]

Dialogue system works fully (minus sound but thats still a win in my books). Plays on level start and level completion and once dialogue is viewed by the player, it is not shown to them again.
.
Mouse can be clicked to remove dialogue from the screen, without triggering bullet fire.
.
Also fixed the issue of the text backround being displayed on re-entry and re-completion of the level, but fixed that easily with a variable, setting it to true or false if level had already been completed, then only displaying the text bg when it was true.
.
Waiver leave button pretty simple, basic pygame rect collidepoint detection.
.
Text box sets text_active to true on mouse click, mouse clicks anywhere else set it to false, meaning player can only type when they have clicked on it (when they want to).
.
I appened every event.unicode into a list on key press, meaning I had a list of the players key storkes, then screen.blitted each letter in the list.
.
Final touches are making all fields complete required to acess button that is a hyperlink to video of me completing stages with instuctions to help, and also backspace and enter and wordwrap working with the text_box.
.
Then I think I’m done for the most part on the coding side of things, and will move onto level creation.
.
The only thing I haven’t completed from my long list from a preious dev_log are:

Level editor
Upside down ability
James bond level start
Hint dialogue on multiple deaths
Boss fight

Not to say these aren’t going to be added but they are not simple things and will not really add to much to my game in all honesty. Given the deadline of end of this month I have given myself, I don’t know if I will have time to add these (except for the James bond level start thing as that is a UI thing that will require art, music ect so might work on that when not coding.
.
That’s all, thanks for reading (:

0
0
3
Open comments for this post

2h 15m 48s logged

Dev Log #29
.
I’m pretty close to finishing the code side of my game now, the rest of my efforts will soon be focous toward things like:

Writing dialogue
Making nicer looking UI
Making tiles look good rather than coloured blocks
Animations
Music

Today I did the following:

Re made the dialogue system AGAIN
Created a gun selection screen

My dialogue system displays a word at a time and plays a short noise for each word shown, similarily to undertale voice blips. However, I think it sounds quite bad and I plan to replace it with a set dialogue sound that plays at the start, like animal crossing.
.
My dialogue system now plays on level start and level completion, and does not re-trigger on level repeat, using similar code used in my star tracking code.
.
Gun select code is similar to my level select code, using a different class but the same code, just changing the lock out code to only unlock once star count is >= button number - 1 * 6, so that each button is unlocked for each 6 stars earned, as well as having the default gun already unlocked.
.
That’s all for today, I hope to have a complete game by the end of the month so I can have this finished before the school year starts.

0
0
4
Open comments for this post

2h 10m 43s logged

Dev Log #28
.
Didn’t do alot today, or for the 2 other days…
.
I finally made ghost bullets work correctly and have changed the dialogue sytem a bit
.
The ghost bullets working and not working previously was juts a matter of using variables inside the bullet class rather than global ones, making it work better for some reason, I had the assistance of a friend in fixing the issue, and safe to say it solved it
.
Dialogue sytem has only been changed slightly so not much point documenting the changes, spacing, timing of letters, ect.
.
Sorry for short devlog, I hope I have more tommorrow.

0
0
7
Open comments for this post

3h 24m 4s logged

Dev Log #27
.
More things checked of the list today:
.
Today I did:

Added gravity flip ability
Added teleport bullets
Added player mission objectives

However, some other things i worked on today are still a work in progress, such as:

Diologue system
Ghost bullets (travel through walls)

Gravity flip works similarily to how slow time works, settings the variable self.gravity_flip to -1 on contact, then multiplying graivty strenght by it, reversing the direction of gravity
.
This however made my realign function not work when on the ceiling, so i added to re-align that if gravity_flip was negative, to detect ceiling hit rather than grounded, allowing it to work why gravity was flipped.
.
Teleport bullets work by setting a can teleport function to True on contact, then when true, if bullet collidesrect with tile, self.rect of bullet is equal to self.rect of gun. the can tele[port function is then set to false, making the ability only work once as intended.
.
Player mission objects are as follows:

Complete level
Complete level in set ammount of time
Complete level with less bullets than provided

This uses lists in a way i have never used them before and looks like this

total_stars = 0
level_stars = [[False, False, False] for _ in range(levels)]

If player completes level, level_stars[Settings.player_level - 1][0] for current player level is set to True.
.
If player completes level quickly (complete_time < bonus_time), then …[1] is set to true
.
If player reaches has_won game state with a number of bullets lower than the bullet max, then then …[2] is set to True.
.
Total stars is incremented by one for each goal completed, and if level_stars[Settings.player_level - 1][1,2 or 3] is already set to true, then the increment is skipped, meaning you can only get 3 stars per level.
.
That’s all for now, hope to fix the issues I had today in tomorrows devlog!!

1
0
23
Open comments for this post

2h 6m 21s logged

Dev Log #26
.
Popped ULT today!!!
.
Today I added the following:

Slow time ability
Breakable surfaces
Bullet pickup
Fixed up dialogue system (Not fully complete)

Slow time ability works by setting a time to a decimal then multplying the following by it:

Velocity (Bullet + Player)
Rotation speed
Gravity strength

Multiplying by a decimal reduces the numbers, emulating slowed time rather than reducing fps which is a bit of a cop-out
.
Breakable surfaces work similarly to the gate tiles, the tiles having a alpha value of 0 when bullet rect makes contact with tile of that class and adding that tile type to a list: broken_tiles.
.
All tiles in that list are then ignored by tile collision
.
Bullet pickup works by detecting rect collision between the player and the surface, when contact is made the players bullet count (representing bullets shot total) is reduced by one, increasing the number of shots available to the player by one.
.
Dialogue system now works with full words, voice blips are annoying but will fix late stage when adding polish. Will also make it that player has to click mouse to go to next dialogue screen to give them time to read the text.
.
That is 3 and a bit things of the list, very good progress, juggling summer work, this and most importantly my Minecraft duties has been an upward hill battle but I’m getting there.
.
See you next develop with more progress!!!

0
0
8
Open comments for this post
Reposted by @ShinyMist

4h 10m 22s logged

New camera mode for the main menu!
Demo is in the video! :steamhappy:

Before remaking/overhauling the main menu UI into light/dark mode (and, to look nice, of course), I’ve decided to rework the camera as it’s a bit of a weak point in the menu.

It features:

  • Camera sway
  • Camera switching between points
  • 15 different points for the camera

Now, this has also reminded me that the main menu needs a little bit different of a song selection, as drum and bass for a gentle camera sway obviously doesn’t work.

Miscellanous changes/fixes:

  • Flying trees fixed
  • statsGui (naming fix soonTM) bgcolor and background transparency changed in light mode to that of the old UI.
5
1
82
Open comments for this post

39m 22s logged

Dev Log #25
.
My love for videojuegos has got the better of me.
.
Over theses 2 days all I have done is made some level maps and fixed the spawing positions of both win condition and the player based on the new maps.
.
But I have structure now, and rather than geting destracted, I have set myself some goals to complete hopefully by the end of the month, leaving me time to make the UI look nice.
.
I present to you. THE TOD0 LIST:
.
A - DIOLOGUE

  1. Fix dialogue system
  2. Add hint dialogue
  3. Add new level dialogue
  4. Add completed dialogue

B - ABILITIES/TILES

  1. Bullet Pickup
  2. Ghost bullets
  3. Teleport bullets
  4. Time SLOW (not stop)
  5. Gravity flip ?
  6. Map flip ?
  7. Breakable tiles
  8. Level editor ?

C - UI

  1. James bond level start animation
  2. Gun skin menu
  3. All menus with all required buttons

D - Miscellaneous

  1. Mission objectives (Bad piggies esque)
  2. Determine gun skin unlock criteria
  3. A FINAL BOSS !?!?!

I hope tomorrow if filled with WAY more advancements of the work kind rather than the Minecraft kind (;

0
0
4
Open comments for this post

2h 43m 16s logged

Dev Log #24
.
A progress full day today, but mabye not for the best??
.
Today I done the following:

Added a charcater diologue box
Fixes re-align function so that it works when rotation direction is reversed

Just doing little sidequests for now as I’m trying to hide from my enemy, level design.

The things is I’m not very good at games, so i dont have the reaction time to create very punishing levels with little room for error.
.
So to combat this, I end up making really hard levels or super easy ones.
.
Additionally, I barley add any time to my total when creating levels as it uses a piece of software outside of visual studio.
.
My character text box is pretty much a recreation of the ones seen in undertale, even using the voice blip of toriel as a place holder.
.
This should allow me to add a small story that I will make sure to keep simple, like a mario esque plot.
.
The re-align function was fixed by using the variable rotation direction, then setting that to 1 or -1 depending on contact with reverse direction ability or not
.
Then multiplying rot_speed by that value reverse the direction that re-align moves.
.
I will have to knuckle down on level design tomorrow and make sure each level introduces the abilities and tiles one at a time, letting the player get used to them, allowing for levels that include a mix of multiple to be more approachable.

0
0
6
Open comments for this post

3h 9m 59s logged

Dev Log #23
.
Very good day today, embracing the foddian likeness of my game, making sure that the player gets as angry as possible, just to make that feeling of victory feel so sweet.
.
Here’s what I did today:

LOSER document created (must be filled in to reveal hints, which will be added later)
Change rotation direction ability
New map (Still a WIP)

Document uses follow mouse function and draw line function. Starting the line at the mouses previous position and ending it at its new position.
.
This happens very fast, so the lines do not appear blocky and appear like real pencil drawing.
.
The change rotation ability uses the pbject layer like my previous time stop ability, and now that I understand how object layers work, i was easily able to make this ability by copying my clock abiltiy load and changing the result of contact.
.
The result being making rotation speed negative, reversing direction of rotation.
.
The new map uses a mix of many abilities and objects, but I have not added them in just yet.
.
I could quite easily I feel but I’ve reached my 3 hour brain capacity limit, because realisticly with the time spent making pngs, finding sounds, reading pygame documentation and waching tutorials, I’ve probably spent about 5.
.
But rewards are not for the weak or the lazy, and this little project of mine is helping me leaps and bounds for my future A-level comp sci journey.
.
See you next time, with some jucy new progress!!!!

0
0
5
Open comments for this post

3h 19m 40s logged

Dev log #22
.
Back to business!!
.
Today I added:

Uncompleted level select lockout
Separated tile load into own file
Easter egg room added

Level lockout works by calculating max_player_level, the furthest level a player can select based on if they have beat the previous levels.
.
This works buy using a function to check if current player_level is greater than max_player_level, if it is then max_player_level = player level.
.
Then for level select button with number greater than max_player_level, a red cross is screen.blited ontop,as well as not allowing mouse clicks of the rect from having any function.
.
Tile file separation helped me remove 150 lines from my main file, improving readability.
.
My easter egg has a 2% chance of happening and gives the player a custom gun appearance on discovery.
.
The code used to change the guns appearenece should let me, in future, make custom skins for the gun, skins that could be rewarded for levels complete, secondary level goals reached, ect…
.
I will not share how to reach my secret room, but I think it would be better for someone to stumble across it by accident.
.
Good day today, progress is picking up pace again, good job me!!!
.
Strange, it seems, there is a man here….

1
0
33
Open comments for this post

2h 8m 28s logged

Dev Log #21
.
Getting lazy now, saw hacktime was down and decided not to bother doing anything before 12, but I hope I will break this cycle.
.
Today I added working buttons that when pressed, remove gate blocking path.
.
Had to over hall all my tile loading and map loading and parts of my collision resolution to allow me to reduce the lag being caused in some levels and be able to remove collision selectively for tile types.
.
I learn how to use set today. I used a set to store the types of gates that have been opened because it prevents duplicates and allows me to quickly check whether a specific gate is open.
.
No animations for button presses yet as I want to leave that stuff for the end.
.
I’m feeling the time crunch now because I really want this to be finished before I get back to school and focus on my studies, but this still counts as practice so I’ll continue a little bit during school days.
.
I will do better tomorrow I promise, cause I’ve got this far, it would be a waste to stop now.

0
0
18
Open comments for this post

2h 48m 19s logged

Dev Log #20
.
Sorry for the hiatus, not a lot done, but sure I will be soaring tomorrow.
.
Today I addded:

Killable enemies
New reset all function

Killable enemies act as win conditions, similar to the mini stars, having to all be killed for the goal polygon to spawn.
.
The reset function made my code much more readable and allowed me to condense all of the restart events like lose velocity, set position here, screen.blit things again if needed.
.
I started working on 3 buttons that when pressed, open a gate but didn’t get to finishing it sadly.
.
I want each button to have different press conditions, one can be pressed by bullets only, one only on direct gun contact and the other working with either or.
.
In later stages, I will have to think how i will communicate this functionality to the player but I’m saving texturing and making the game look good for last.
.
Hope to have more progress tomorrow. Fingers crossed.

0
0
5
Open comments for this post

2h 26m 27s logged

Dev Log #19
.
Getting lazy, need to lock in and get 3 hours tomorrow.
.
Today I added:

Working portals
Time stop ability

Portals and time stop ability use object layers in tiles, a much easier solution compared to my use of polygons for complete goals, may change that but not sure.
.
Time stop ability is pretty simple, works like pause menu, but allows image rotation and enables follow mouse.
.
Portals work by on contact, moving player position centre to other portal centre.
.
The velocity changes with the exit direction using the following code:

rotation_difference = entry_angle - exit_angle  
self.velocity.rotate_ip(rotation_difference)

Overall, ok day, not sure what I’ll do tmr, but I’m sure theres something hiding on my checklist.
.
ALSO!!, Fix this horrible performance issue I had, see bellow for comparison

0
0
5
Open comments for this post

2h 32m 46s logged

Dev Log #18
.
Good day, but stopped early today beacuse, well, i’m afraid…
.
What I did today:

Added mini_stars
Added re-align option when grounded
Added new map

Mini stars are to be collected first, unlocking the finish goal. They are hard coded right now so cant be moved for new levels, but I can change that if need be.
.
Re-align was initially supposed to allow A to rotate the player one direction and D the other, but my game seemed to really not like decreasing the angle value when grounded.
.
So I’ve made it so rotation only happens one direction, but a full 360 range of motion is possible.
.
The new map that uses portals, but the portals are not actually functional yet so, thats a job for tomorrow .
.
Almost everything added from last devlogs check list, but decided against adding placeholder music during playing state as i think I would go insane from listening to it on loop, so that can wait till the end.
.
Hope to have a longer more prosperous dev log next time, see you then!!!

0
0
7
Open comments for this post

3h 41m 53s logged

Dev Log #17
.
Feel kinda stuck in-between, but once a pass my last hurdle, all of my efforts will be focused on new abilities, new tiles and art, but the basics are sooo close to being complete.
.
Today i did the following:

Level stopwatch
Level complete goal changed
Edited map

Complete goal had to be changed to make animation of win goal possible, like coin pick up in Mario. Uses polygon collision, freezes on contact currently but working on fix.
.
Level stopwatch works well, and works with pause menu by subtracting time passed in pause menu from counter total on continue button pressed.
.
Map needed editing as I feel my game is too hard and my muscle memory from 100’s of tries makes it feel easy, but really isn’t.
.
Tried making a new map that requires you to collect many little stars to reveal the goal but found it hard to find a map that works with wide range of movement.
.
This issue is caused by gun being useless most of the time on collision with floor as it is aimed the wrong way.
.
I plan to have the player be able to rotate the gun while its grounded using A or D, this re-ajusting stopping players getting stuck. That or a jump ability.
.
Next devlog hope to have:

Mini stars working
New map
Rotate/jump when grounded
Game in progress music

See you next devlog, no 1 day hiatus next time (;

0
0
7
Open comments for this post

2h 39m 50s logged

Dev Log #16
.
Today was good. I was welmed.
.
I did the following today:

Added working kill tile
Fixed image lagging behind player polygon
Switched over to match cases

Kill tile works as intended, but doen’t ‘kill’ the player yet, it just freezes everything, plays a sound and propts you to restart.
.
Image lagging behind was a big issue, causing the kill tile to look as if it were killing without contact, but this was cause by the image lag behind.
.
I tried changing the order of functions in update() but that didn’t work, tried other stuff like changing how some functions work, in the end, it was because i called update after player_group.draw(). Silly me!!
.
Match case switch over was easy, just the indentation was at times a pain, but I’ve sorted it now, thank goodness!
.
Going to try and finish the loss screen that appears, adding a level select button and a return to start, but might not as its not strictly necessary, but does look nice.
.
Not sure what other stuff to add, maybe a new level?
.
Who knows, see you next Dev Log!!!!

0
0
8
Open comments for this post

3h 2m 26s logged

#Dev Log 15
.
Good day at the office.
.
Did the following today:

Working level select
Fixed Music Issue
Fixed map loading issues (didn’t discover until today)
Added tile classes to replace gid based system for tile specific collision

My issues today were caused by my moving of code into separate files, but I’m getting there. I’m no longer using from ___ import * and I am instead using import ______.
.
The sound issue was caused by a variable in settings setting play music to False without my knowledge.
.
Map loading broke because my maps are only loaded once outside of the while loop, so I fixed that.
.
Tiles now have a class that can be checked, allowing for different interactions with tiles dependent on tile class.
.
Thinking about storing some of my variables into match statements for readability but I find using match cases in Settings.py to be really difficult so I will proceed with caution and immense fear!!!
.
Not sure what tomorrow holds, thinking about making the kill and win tiles do something rather than print win or killed, but might be held up by this switch from many elifs to match cases.
.
Staying determined, see you next dev log.
.
PS, a little hint to my little easter egg 📂︎🖮︎

1
0
4
Loading more…

Followers

Loading…