Activity

nmsoukmandjiev007

Finished the web build!!
you can visit it here https://nikoi008.github.io/Falling-sand-sim/
I found an issue with the water and sand interaction so im working on that at the moment!
The way i got it on the web is by using emscriptem and then compiling in wasm, which is a really nice benefit when working in raylib!!!

The only thing i have planned is probs 1 or 2 more blocks and then this is probably shipping worthy!

Attachment
0
nmsoukmandjiev007

Added colour variation!!
I made it super efficient as it literally only stores 1 byte per colour, meaning that it saves 7x more memory compared to if i were to do it as RGBA (1 byte for R, 1 for G, and 1 for B and 4bytes for alpha)!!
This means it only uses 40kb of memory instead of the usual 210kb, which is a very miniscule number anyways, but its good to optimise wherever you can, especially since this is an optimasion that is isolated from the rest of the code meaning that im not actually racking up any sort of technical debt!!!
It also makes it look much cooler and more realistic which im happy about too!
Todo!
Web build
Readme
More blocks if i have the time!

Attachment
0
nmsoukmandjiev007

Added a little UI where people can select the type of block they want!
I also added keyboard shortcuts for each of these (1-4), but that isn’t anything crazy.
Its already looking polished but im kinda running out of ideas lol
I might change the way the blocks look so they look more realistic rather than a single blob of yellow
Todo!
Reset button (maybe not really necessary because of erase?)
Web build
Readme
Cooler looking blocks!

Thats about it for this devlog tbh but i hope i can come up with more ideas!!!

Attachment
0
nmsoukmandjiev007

The non- gravity floaty rock things work!!
its really fun to just make a plinko style arena with this and see the water flowing down!
Thats about it for this feature lol but what im planning to implement now is

A UI with tooltips!
Grid reset
Web build :O
More cool blocks!

Attachment
0
nmsoukmandjiev007

Added a brush and got working on the solid floaty blocks!!!
The brush was fairly straightforward to make, its just that im having issues with the blocks colliding with the solid block where they would kinda tweak out, so im trying to get that working!

Attachment
0
nmsoukmandjiev007

Shipped this project!

I made a warioware style game in C using raylib. This was a fun learning experience as i learned a lot about the raylib API and it helped me out making the projects i am making now.

!!Please read the readme if you don’t understand what to do, thanks!

nmsoukmandjiev007

Updated the readme and now it’s ready to ship!

Attachment
0
nmsoukmandjiev007

I got water done!!!
This was SUPER confusing because i kept messing up the water logic and also the gravity logic and also the interaction between sand and water, but in the end we got there!!!
For those wondering, water shares the same logic as sand, except it also needs to move horizontally to fill in any spaces, and cannot just crawl over a mountain of sand.
Its currently being controlled by keys! 0 is air, 1 is sand and water is 2
It works really smoothly and im really happy with how its working so far!!

Todo!
UI!
Grid reset
Larger brush sizes!
More blocks (currently planning to make just a solid block that doesnt move)

Attachment
0
nmsoukmandjiev007

Got started on this project for week 3 of lockin!!
This was mainly me experimenting and lookin at other peoples code, and i managed to reproduce a very nice looking falling sand type thing!
It is honestly fairly simple to make once you boil it down into basics lol. you first try to apply gravity downwards, if the sand is already grounded try to make it go left, if the left is blockaded make it go right!
Right now its just a 3x3 brush that just pushes downwards, but i have plans to make it enlargen and also have more cool blocks!

Todo!!
Variable size of brush
Water
An actual UI sob-ios
A way to reset the grid!

Since im most likely only going to spend 10 hours total on this ill keep the scope fairly simple!
Enjoy the recording!

0
nmsoukmandjiev007

Shipped this project!

Hours: 10.75
Cookies: 🍪 348
Multiplier: 26.93 cookies/hr

This ship was mainly to address feedback of all the previous voters, and i think i managed to do it all quite well!
I made the player much more enjoyable to use at people were saying that it was really fast, as well as fixing a bug with friction
I optimised the drawing engine to be much faster, with an 86% decrease in draw calls to make the project just a little bit more technical, as well as using concepts in C i havent used before such as bit shifts and inline functions which sped up calculations
I made the editor easier to use with a block preview and tooltips for blocks and shortcuts so people know what does what.
I added a few more blocks so people can have more creative expression, which were movement pads, enviromental deco, and a lock and key!

Several bug fixes were also addressed that were probably not mentioned as much. Hope you enjoy!

https://nikoi008.github.io/Legally-distinct-platformer-maker/ is the website if you for some reason cant find it in the demo

nmsoukmandjiev007

Added doors and keys!
The key is a collectible that is tracked through an internal counter and then opens the door. Its one time, which allows for “challenge rooms and was overall pretty annoying to program since the door needed to have it’s own collision tech.
Aside from that it works perfectly and i have completed week 2 of lock in!

Attachment
0
nmsoukmandjiev007

Deco was added!!
There isnt much to say about this, but i added 3 types of deco - flowers, grass and clouds
All of them are non solid and are just there for a bit more immersion!.
I did however accidentally make a bug where two clouds would be drawn instead of one (since the sprites are 16x8, i have to fill 2 tiles, causing a second cloud to be drawn because of how the engine works), but double clouds are lowkey a vibe so it will stay!

Attachment
0
nmsoukmandjiev007

Movement pads added!
Theyre still a big buggy since my physics engine is tile based and the pads physics need to be pixel perfect, but its getting there! Its mainly just the hedgehog ai and logic though, but if it works it works
There are also a few strange bugs that i have to address too, not only with the pads, but those will get fixed in due time!

0
nmsoukmandjiev007

RAAAAAH I FIGURED OUT WHY THE PLAYER WAS TWEAKING JIGSAW

It was because this dumbass flag puts the player IN the block causing collision to be wonky.
Anyways i fixed it by just spawning the player 1 pixel higher

:yay:

Attachment
0
nmsoukmandjiev007

This was mainly work to make the tooltips a lot more modular so i dont have to have two seperate structs. Anyways a bit of work later and a lot of magic numbers later, the tooltip system is really well made and really customiseable!

I think that is all for player feedback, now ill continue working on new things!

Attachment
Attachment
0
nmsoukmandjiev007

Added tooltips!
This was mainly me wrestling with the raylib text api because i hate it with a passion, but at least it’s a lot easier than making a full blown text engine.
There isnt really much to say on the surface as it’s literally just a thing that displays whenever you hover over a block.

The real issues came with…. it somehow shitting up the player code!!!!!!!!!!!!!!
I genuinely have 0 clue as to why it would happen, as they do not share anything aside from one completely irrelevant function, causing the drawing code to be somehow broken. I fixed that by removing the include, and also removed the use of null in the editor because im like 3% sure that did something. It also broke physics somehow yay

Thats done and dusted though, and in the end it does look very nice! A bit big, but ill add a toggle for keeping them on or off

Attachment
0
nmsoukmandjiev007

I have started on applying feedback for the editor!

This current edition wasn’t exactly specified, but a voter didnt know what to do and that no information was provided, so i added a feature where the editor highlights a transparent preview of the block that has been selected, so there is an obvious visual cue that you have to click the block, instead of the old blue border :)

I also made it work for the rectangle mode, which was quite simple since i already initially calculated the top left and bottom right coordinates, making it a simple loop that draws over each tile that is in the area of the rectangle.

I’m now working on having shortcuts being displayed on the toolbar!

Attachment
0
nmsoukmandjiev007

I optimised the renderer and started working on the editor!
Before the game used to render the whole grid every frame, which is quite expensive, especially if i want to scale the project.
Now i implemented a way to only render what is being shown on screen, drastically reducing the performance from 15000 iterations to just 2000 :)
I also made the tile coordinate conversion more optimised by making it an inline functions (each function call gets replaced by whats actually in the function during compile time), and using a bit shift for faster division. The bit shift also makes the function more reliable too! Im also planning to change all multiplications/divisions to bit shifts, but that may be excessive and make the code a bit unreadable, so il only use them for what matters most!

Heres a little visual diagram that shows how it helps

Attachment
0
nmsoukmandjiev007

This took so damn long….
So you know the issue where the player sorta bounced around after jumping… well i genuinely had no clue what was going on.
I kept changing and testing and changing and testing for AN HOUR…. and it still wasnt fixed. The amount of tracelogs i had at once was criminal
Because of that i decided to see if claude can fix it…. not even a minute later “Oh! Its because you dont stop applying gravity when the player is grounded. I also changed the camera lerp to work alongside the changes just because :)”.
I give up man…
Anyways, it works! Shame that i didnt manage to fix it myself, but sometimes its not worth banging your head against a wall for another hour, especially since i havent started applying all the feedback from the voters regarding the editor.
Im also working on optimising the code a bit more for the sidequest!

0
nmsoukmandjiev007

This devlog was mainly to address feedback from the voters!
Firstly, people mentioned that friction didnt apply as greatly when moving left, so i changed the friction from it being multiplicative (*0.93) to the speed every frame to it being subracting or addind (+ or - 0.5 to the players current speed every frame)
This already made the game feel miles better since you dont get flung off the map when trying to stop moving left.

Many people were also saying that my player’s movement speed was wayy too fast, so i halved it :). The voters were right, since it made the feel of the game much more controllable, and therefore more enjoyable.

Someone also mentioned that moving left or right whilst jumping was buggy, but i couldnt reproduce any type of problem, so i checked that off of my todo list.

I also updated the input system for easier direction change, and for the better friction. It feels a bit more responsive, but nothing too crazy.

I very stupidly had my player x and y as ints, so that caused a bug where the right movement was half as fast compared to left (no clue why, probably some math stuff), so there is that.

Also added a layer of spikes at the bottom of the map so the player dies when he falls off

There is also an issue with jumping due to the new code, but i will fix that soon!

Those were mainly all the issues with the player, so i will now move on to the feedback of the editor once everything is fully polished.

The recording is the issue i was talking about, probably rounding/truncation error that confuses where the player should be by 1 pixel

0
nmsoukmandjiev007

Oopsie, some bugs were still left when i shipped.
Anyways, those were all those were all fixed.
For those curious, the issues were:
Pressing play in the editor would cause blocks to be placed behind it
Hedgehog did not move left or right
And a feature for wasd input

NOW its time to ship :)
Cute level i made too!

Attachment
0
nmsoukmandjiev007

Shipped this project!

Hours: 18.88
Cookies: 🍪 566
Multiplier: 24.98 cookies/hr

I made an 8x8 mario maker inspired clone in C. It required me to build my own physics, collision and enemy engine, and it was a really interesting way to learn how platformers are made. It also features an editor with it’s own tiling engine that has 8 blocks and one enemy currently, as well as shortcuts to make level creation streamlined.

This project taught me how to write modular code for things like blocks, and it helped me understand new concepts of c i havent used before such as function pointers. This was really fun to make too, and i cant wait to continue working on it!

nmsoukmandjiev007

first week of lock in DONE
its 1am right now and i just spent the last 3 hours wrestling emscriptem
anyways, it finally works and you can try it out here https://nikoi008.github.io/Legally-distinct-platformer-maker/
Changelog because i am too exhausted to devlog

Changelog

Attachment
Attachment
0
nmsoukmandjiev007

Updated the readme!
It’s just a little summary of the game, as well as an explanation to every shortcut and block that is in the game (istg someone is still gonna say “idk how to use it” in the votes)
I should probably also add a player controls section but i hope arrow keys or wasd + space is intuitive enough

Todo before first ship
Menu
Animation
Better editor gui
Emscriptem for web build <–– this thing sucks so much btw

Attachment
0
nmsoukmandjiev007

Enemy ai has been added!!!! Its a hedgehog style goomba enemy that is invincible for now
It was quite simple to do, but that’s mainly because everything is coded for just one enemy. Itll probably rack up in techincal debt further into the project, but thats a problem for future me :’). The good thing is the code can be reused if i make a koopa style enemy because its literally a goomba that doesnt want to fall off.
Also good news is that the code is quite fast. Its O(n), so it wont cause any problems even with high amounts of enemies.
Currently its still quite basic though, since it disappears after you start the level, and it doesnt actually mirror left and right towards the direction it’s facing.
Todo before end of lock in!
Better gui for editor
Player and hedgehog animation
Readme
Web build

H E D G E H O G

Attachment
0
nmsoukmandjiev007

100 hours total!!!
This devlog was mainly just seperating everything into headers and c files so the code is more organised. It’s done but there are still some bugs i need to address before it’s fully finished. I also added a little easter egg in enemy.c because i have not continued with the ai just yet.
Aside from that, i have organised the sprites and audio to be in their own seperate folders so it isnt as cluttered.
A bit of bug fixes and improvements here and there, but nothing too crazy worth mentioning.
Todo!
Change the sprite paths so that people actually see things
enemy ai
improved gui for editor
web build!
improved readme

Attachment
0
nmsoukmandjiev007

Again, not a crazy devlog, but some good features, and im starting something really special!
I added a nice scrolling background at the start. the pallete is subject to change, but its nice for now!
Aside from that, i have started on working on enemy code. it’s going to be goomba style ai, but its going to be a fun challenge, as i want to make it as efficient as possible with an “infinite” amount you can have on screen (technically 14998, because of the grid size and the 2 necessary flag tiles that need to be placed).

todo!
docs
animated character
actual menu
improved editor (not being able to place blocks on gray bar below, ability to use rectangle mode and move camera from bottom there too)

0
nmsoukmandjiev007

This devlog isnt really much tbh, but it did add some nice additions and fixes.
Firstly i added coins! Theyre purely visual but they do increase an internal counter, and it’s got sound effects!
Aside from that, i updated how collision works with non-solid objects that have a trigger attached to them, also making them bounding box coliisions.

i PROMISE ill get tooltips done

Attachment
0
nmsoukmandjiev007

I am really glad i spent the time perfecting this.
So i redid the collision system to be bounding box collision through loosely watching a tutorial. Its honestly miles better than my jank, snap to tile collision that i tried doing myself. This also meant that i had to revamp parts of the physics engine to make it work, but it all went smoothly.
I also added coyote time, so now even if you jump a few frames after leaving a block, the jump still registers.
The video shows both the new collision and coyote time in action.

new todo!
Tooltips (genuinely ill never finish them)
enemie
docs
animated character
menu

0
nmsoukmandjiev007

Added cycle blocks, and to be honest, this is the coolest addition i have added so far!

It was quite painful to program, as i didnt want to make it really inneficient by checking all 15000 possible tiles you can place it on. This meant that i had to change parts of the collision, drawing and tile placing engine for it all to work together. However, the final result is pretty much perfect and very much efficient!
In the end, this was super worth it because it makes the game so much more lively and is just a very useful tool for making cycle heavy levels (which i despise in every single platformer, but i’ll settle my differences for now)

I promise ill get the tooltips done soon sob-ios
Heres a recording of the progress so far - pretty buggy falling logic so ill have to get that fixed, and also skill issue on my part. The sidescrolling camera is working amazingly though which im happy about

0
nmsoukmandjiev007

Spikes added! they were a quite easy feature to implement, so nothing too much to say about that. I just added them in and made it so that they call a function to get you back to the start of the level when touched.

Ill probably start working on tooltips and more shortcut stuf so people actually know what theyre doing… the issue is raylib’s text engine is genuine doggy poo poo when it comes to scaling so maybe i make my own text engine!???! Ill probably just slap on pngs of the tooltips and call it a day tbh

Attachment
0
nmsoukmandjiev007

I just made the end goal work, but first let me tell you about my little revelation in C just now.
As i was working on the endgoal, i wondered if i could sort of “hook” a function for when the plaer collides with the flag, it would call a function that produces a win screen. of course i could just use if statements but that’s not really scalable
So i searched online for something like that, and what i found was truly beautiful: function pointers.
All i had to do was take in a function pointer in my struct, create a function that handles the callision and calls the function in the struct, and voila.
Its just amazing and i really enjoyed learning this because it is SO useful. Its also really fun cominng across new concepts when learning a language!

Anyways all that out of the way, the end goal works!. Its just a flag but checkered, though i have an idea on how to distinguish it from the other flag
Todo!
Spikes
Tooltips for ui objects
helper guide for shorcuts (might just be combined with tooltipes)

Attachment
0
nmsoukmandjiev007

It fills!! Nothing much to say about this lol, but as you can see in the video, it fills and works perfectly.
I honestly thought it would be a bit harder to implement. While it was still challenging in the first place, i mainly had to wrap my head around on how it works!.
Now the todo list is
Some sort of damaging thingy
An end goal
A little helper guide for shortcuts and more things in the UI

Its geninely so fun seeing this get better and better the more i work on it!! I might draw the cover art rn!!

0
nmsoukmandjiev007

Got started on a rectangle fill type thing, so far it works pefectly visually, though i havent actually implemented block fills, but it looks cool so im taking that. I also learned of the fade function in raylib which makes a transparent colour, so that added a bit of pizzazz to the tool.
Its currently only accesibe via the “r” shortcut so i gotta add it to the little board so its a bit more accessible.
Ill update y’all once that’s done!

Attachment
0
nmsoukmandjiev007

Left and right collision is now perfectly implemented! Right collision was really easy, but i forgot that the sprites x position is 0 pixels left when checking for left collision, so that confused me for a while.
The came upwards collision… This was so annoying to program, and even when i managed, it works terribly with snapping to the top tile and just not very good behaviour. Ill try to fix it later but i wanna finsh up the core parts of the editor.

New todo!
Make collision better
Animation
End goal
Line tool!
And maybe a menu :’)
Its going well so far though, but i probably need to check a tutorial of sorts or maybe redo the collision

0
nmsoukmandjiev007

Added some friction which already made the movement so much better, and i am currently implementing the collision system. Which i managed to do, except the second she collides onto something, she just kinda stays there, unable to move, yet able to jump….
I dont know how to fix that but i dont wanna watch a tutorial just yet, so ill continue working on it.

Todo-
Fixed collision
Character animation while walking
End goal
All the editor todo i still havent done

0
nmsoukmandjiev007

Hackatime was down :’)
Anyways, I am halfway done with the player engine, as i have implemented gravity, jumping, collision only on feet, and acceleration but no friction. Theyre all working perfectly, but i need to find the right numbers cuz moving the character around feels unsatisfying. Other than that, slight changes were made to the editor such as adding a warning if you didn’t place a flag object, which is the start indicator of the level.

Now the todo list is:
Actual collision from top and sides
Friction
Animation

And for the level maker
Enemies of some sort
Autotiling
End goal
And a few more blocks
Also a more robust way to move in and out and zoom in and out because it tweaks out when you go too far

Attachment
0
nmsoukmandjiev007

Did a little bit of work with the player and integrated it with the editor.
Firstly, i designed a little 8x8 player sprite since 8x8 is cute and thats the resolution ill be working with for this project.
Secondly i made it it so that the player’s start position is linked to the flag so he start from the flag. It was a quite simple thing to do but very satisfying at the same time.
I also made basic input handling, but as you see, no collision yet.

Todo:
Everything i said before
Collision
Gravity

0
nmsoukmandjiev007

Worked a little bit more on the editor, added a flag object which can only be placed once and is how you start the level.
I did have to change how blocks were being placed, but at least there is now an identifier for each block that says whether it can only be placed once

Got started on the platformer code too
todo list right now is quite large, but its
Add an end goal
Make some sort of a physics and collision engine for the player
Autotile ground blocks so they look nicer
Enemies with an easy way of showing how far they go
Web build :0

and other things probably but i shouldnt get ahead of myself

0
nmsoukmandjiev007

Added the ability to change tiles from the bottom screen, and it works like a charm. Since the primitives of the tile engine are almost done, ill polish it and then start working on the menu and platformer engine.

Im really excited to get this all working and polished so i can move on to the platforming engine

0
nmsoukmandjiev007

Got started on the level editor. So far the primitive features such as dragging, panning placing and deleting work, and im now getting started on being able to select differnt blocks, as well as maybe autotiling for ground sprites (really excited to implement this).

Current controls are left click to place/ delete blocks, scroll wheel to zoom in/out and shift+left to drag

0
nmsoukmandjiev007

It now displays the same colour scheme as other wca websites!. Time to get started on making the moves work.

Attachment
0
nmsoukmandjiev007

Who thought that tracing pixels would take so long????
Anyways, the drawing part of the skewb code is done. It is all magic numbers. Literally impossible to figure out what draws what. But it works. Its gonna be a pain to debug but it works, and i honestly dont know enough about how to mathematically project such a shape.

Here’s a photo of the full function, isnt beautiful

Time to get working on skewb itself!

Attachment
0
nmsoukmandjiev007

Lowk forgot how unreadable this project was in one singular main.c, so i seperated it all up :)
I never did this before so that was an interesting learning experience, and now my code is much more organised!

Since it compiles literally the exact same thing except for one less compiler warning heres a screenshot of the file structure (ignore all the problems that’s just intellisense tweaking out)
Now it’s time to add skewb!

Attachment
0
nmsoukmandjiev007

Honestly kinda forgot i was doing this.
Since this project already had a lot done ill first say what i did during this period. I added:
The option to choose 4x4 and 5x5 cubes, as well as their previewed scrambling
File saving of times, for all cubes.
AO5 from those saved files

But before flavourtown i had
2x2 and 3x3, as well as their scramble previews.

It’s quite a good improvement,but there are still some things to add, and im excited to get started on them!

Cintematic lookin photo

Attachment
0
nmsoukmandjiev007

Shipped this project!

Hours: 38.91
Cookies: 🍪 860
Multiplier: 22.1 cookies/hr

I made a match 3 game for the nintendo DS - A dual screen handheld console released in 2004 with 4 megabytes of ram and a 67mhz cpu for primary processing, along with a 33mhz cpu for i/o. This was all written in C without a game engine, and i had a blast making this!

I learned so much about how the ds handles memory, with its multiple VRAM banks and different screen modes, as well as how to work with sprites and touch input. This also helped me learn more about C and how to write better code in general.

The hardest part was 100% animating gravity as I chose the foolish descision of using 2 different screen modes for each screen, causing some logistical issues with how sprites had to move from one screen to another.

I am really proud about my check for any possible moves, as i was able to make a really good way to check for them very quickly whilst handling all edge cases.

Overall this was a very fun project and I will certainly continue making things for the DS!

nmsoukmandjiev007

The finishing touches were finally made!
Firstly, there is a score displayed, as well as a win condition, which is to reach 1000 points.
Then I added a win screen and some cheering for when you reach that threshhold, as well as an option to continue playing after you’ve won.
I also finally implemented the move checker, so now it automatically shuffles for you when you have no moves available.
I will also add an emulator in the repo so that it can be easily tested without a ds!
Also had a heart attack because github just didnt recognise this repo on my side but its all good now :)

Also video included with full gameplay start to finish :)))))

0
nmsoukmandjiev007

Added a title screen with title music. Also made a bit of a scoring system that has yet to be displayed, but it is there. Fixed up the pops too, so now theyre centered.

My updated todo list is now
Add a win condition
Show the score
Apply the move checker
Ship!

0
nmsoukmandjiev007

I was genuinely in a trance programming the possible move checker because boy did i make it nice and efficient. It’s O(row x col),which in my case is an 8x8 portion of my grid, which means it pretty much zips through all possible moves. This was super fun to just make not because the ds is underpowered but because it was a useful learning experience to make instead of just brute forcing each possible moves.

I havent actually implemented it to work in the game loop since im 50% sure i messed something up somewhere, but it exists in there and it compiles so im pretty much almost done.

Todo:
Literally everything i said last time

Ds 👍

Attachment
2

Comments

desh.kian
desh.kian 29 days ago

This is sick

nmsoukmandjiev007

Thank you!

nmsoukmandjiev007

Its kind of crazy how polished this is becoming!
I added a little bubble popping animation when you match something. This was actually super annoying to do because of the first issue with the screen being frozen for the amount of frames the animation plays, which was completely my fault because it wasn’t actually changing frames due to my math being wrong.

Then the animation was playing twice every time something matched, and that was again my fault as i call the matching function which does both matching and animation twice: 1 time to check if a swipe is matching, and another to actually find matches during the main game loop. This was a fairly easy fix as all i had to do was make a super stripped down check to see if there are any matches when a user swipes a block.

This means the gameplay loop is pretty much finished. There are only a few things left:

Make the pops centered and have better detail
Some sort of score system
Title screen
Maybe a gimmick with the top screen that i was thinking about before, but i dont know if its entirely necessary.

Some which i could do but i dont think are a must are:
More efficient file saving
A check to see if there are any more possible moves (if not too expensive on performance)

0
nmsoukmandjiev007

A fairly productive hour coding!
The issues with some sprites being moved in front of other sprites during gravity was fixed
There is a partial implementation of the popping, but it is not fully done due to an issue where it plays freeezes during the frames it is meant to animate (hence the pauses after matching)
I have no clue why the emulator (melonds) kept freezing last time so i swtiched to DsEmuMe and it seems to emulate that fine, except for sound which is HORRIBLY delayed. I dont think there is a fix for that at all though because the sound library i use points out that emulators dont work well with it.

Todo
Fix the popping animation
Title screen!

0
nmsoukmandjiev007

Guess who spent an hour debugging why my program kept freezing on an emulator, but ran ever so sweetly on real hardware (i didnt fix it)!!!!
Anyways, today was mainly a day of refactoring matching logic for upcoming matching animations. It doesnt really show it, and there are probably a few bugs, but it was a very clean method which im happy about.

Since the progress isnt really visible when playing normally, heres a funny bug which misaligns the top select screen

Todo:
Fix the strange issues during gravity
Unfreeze the emulator
Pops!

1

Comments

nmsoukmandjiev007
nmsoukmandjiev007 about 1 month ago

oh yay 30hr milestone!

nmsoukmandjiev007

File saving is done! This was fairly straightforward, i just had to re-remember how to use it.
So yeah, now you can play the same grid.

Only issue is that i am saving literally every single frame so ill have to quickly fix that up or else im just kinda wasting battery…

0
nmsoukmandjiev007

Had a random surge of motivation these past few days, and i managed to get all the minigames working, as well as some other stuff such as making the window resizeable.

0
nmsoukmandjiev007

Managed to make one switch between different layouts. its currently just arrow keys and abxy, but ps buttons will be coming soon.

This very little feature taught me a ton on how graphics works in libnds because i had to change how graphics gets handled in memory.

0
nmsoukmandjiev007

Gravity is now animated!!! Unfortunately there are still some annoying bugs that i have yet to fix, but its there!

0
nmsoukmandjiev007

Got a playable-ish version working. Its nowhere finished just yet, but its going well so far. Ive started working on the transition elements and the main menu before i focus on making the minigames work.
It also scales to resolution which is nice, although it is limited to 16:9 aspect ratio because pixel art doesnt play nicely with scaling

0
nmsoukmandjiev007

Shipped this project!

Hours: 26.32
Cookies: 🍪 323
Multiplier: 20.42 cookies/hr

Added some QOL features, as well as a makefile for easy building.
For those who don’t know, Langton’s ant is a turing machine ( a popular example of this is Conway’s Game of Life). Initially it only uses 2 rules, but i have expanded it to have more rules, ants and even different options for how the ant moves!

This was all written in C using the Raylib and Nuklear libraries

nmsoukmandjiev007

Got started on the project, heres what i made so far:
Built the skeleton structure for the core game loop
Brainstormed some minigame ideas
Got started on working on some assets
Made a small transition engine
Made an infinitely scrolling background

The game is still not playable, but heres the transition asset that scrolls sideways

Attachment
0
nmsoukmandjiev007

Mainly bugfixes, but I also added some features
Fixed an issue where the symmetry preset wouldnt work if you used the random preset before
Added tooltips for rules in hexagon mode
Added the ability to go back to the menu
Added a move counter and a popup that appears when all ants die

0
nmsoukmandjiev007

I cant even lie this was me just trying to animate gravity when i didnt even program gravity logic correctly in the first place…….

Yeah so still no animated gravity BUT my mistakes helped me learn what i did wrong sooo eye candy soon?

Also got me a new ds lite with an actually working hinge so theres that

0
nmsoukmandjiev007

Fixed the issue where only the first 2 song entries would show up
Made a helper file with all the id’s that had the song names
Ignore the top screen, its not really broken i just didnt delete a line of code

0
nmsoukmandjiev007

Added the ability to load a background to the song that is being played, and added arrow keys. There is still a lot to fix such as the broken gui, but ill get to it

0
nmsoukmandjiev007

Created a helper drawsentence function that makes the text engine more convenient to use by automatically moving to the next row and also lets you choose a starter x and y position

0
nmsoukmandjiev007

Accidentally opened examples folder instead of project folder so i lost two hours but whatever :’)

Managed to get stickers working, also made them be able to change size because i still havent decided how large they have to be.
I also learned how to read button inputs on the gba so thats fun

0
nmsoukmandjiev007

Got the development enviroment set up, looked at the examples for an hour, made a little text engine, and now its time to start working on this!

0
nmsoukmandjiev007

Started working on the top screen block swapping mechanic. Its not going too well but the core logic is there, so i will work on it tomorrow. Everything else also works.

Fixes:
The wierd black borders on the crops being messed up

Heres a crude recording of progress once again

0
nmsoukmandjiev007

Not much done this time round.
Added an anti softlock mechanism, though it is manual. I fear that automatically checking for new moves would be very expensive.
Made a okay-ish title art. It was mainly parsing some game assets that i got and thats about all, though it is hinting at the next mechanic that i will introduce (follow if you wanna get updates btw)
Changed the code to work as a state machine to prepare for said new mechanic. Overall, it was a fairly short day of me continuing this.

Todos before I add the new feature:
Animated gravity
Cleaner looking sprites
Title screens
Game saving

See you tomorrow

Attachment
0
nmsoukmandjiev007

Ive made some cool stuff today!

Firstly, i got background music to play, which was very annoying because they use a different file format that splits the music up into presampled instruments, meaning a simple mp3 conversion wouldnt do. However, the programming part was fairly straightforward, so that was fine.

Secondly, I got swiping animations! Yayy! After about 6 devlogs of me promising them theyre finally here. Theyre not perfect as it creates 2 extra dummy sprites to move instead of the real ones so that sprite ids arent mixed up.

Also fixed up some bugs such as:
all six crops not showing (wheat is here now)
something that just drifted away from my thoughts

Heres another recording of the gameplay! Enjoy

0
nmsoukmandjiev007

Yayy! Eyecandy!
Settled on the theme of my game, which is farming. Bought an asset pack on itch io, made a grid, and now it looks like a game!

There are still todos though which are:
Animations
The wierd black borders being messed up

Heres a little recording, please ignore my roomate

0
nmsoukmandjiev007

I FIGURED IT OUT!!!!
With the help of some people who are way more knowledgeable than me, and with a bit of guesswork
I reduced the graphics slots usage from 128 to JUST 2!!!!

This means slightly faster load times, which sounds kinda pointless, but this helps with future stuff, so its good

Attachment
0
nmsoukmandjiev007

Did a bit of thinking and decided that there is no use optimising it for now, as i still have the leeway to add more stuff before i truly hit the limit.

I also managed to implement the restriction of moving your blocks anywhere, and that you can only move it if it matches

Enjoy the 25 secs of shaky gameplay!
Next plan iis to add animations if all goes to plan

0
nmsoukmandjiev007

Hitting a huge roadblock in terms of optimisation and animation….
Im brainstorming as much as I can, but i can’t figure out much, so this devlog doesnt have anything too crazy.

Im figuring it out though, bit by bit, also added a little crude explanation for those interested

Attachment
1

Comments

nmsoukmandjiev007
nmsoukmandjiev007 3 months ago

I may be a bit stupid. GFX is image data, and uses the palette to figure out which frame it wants to be (i think)

nmsoukmandjiev007

Boy did this take a long time….
First i tried making my gravity system with 2 different arrays falling on top of each other, until i realised how painful that was, so i opted for 16x8 array that handles both the top and bottom screen

Then i realised I didnt know how arrays worked and that it is not like grid coordinates and kept jumbling them up, causing lots of issues with out of bounds access and vertical gravity, which was hilarious to see.
I also realised how half done my swiping was, so i fixed that so its a lot easier to not miss a swipe.

However, now gravity works, tile matching works, and the swiping works.

Then i polished everything and were back at square 1 and a half!
Still need to optimise the gfx tho :(

0
nmsoukmandjiev007

Huge news right now!
I got audio playing to work, its perfect, and all i gotta do is find/make some cool sound effects.
The top screen is rendering sprites properly, which will be the whole gimmick of this project

one issue…..
i may or may not have used all gfx’s (basically animation sprites), so some optimisation may have to be done if i were to show explosions and stuff.

0
nmsoukmandjiev007

MATCHING IS FINALLY DONE!!!
This took so many tries, as i really couldnt grasp how to do it, so i caved in and found an example match 3 game in c, and used its logic.

Its a bit of a shame that i couldnt figure this out myself, but if i did continue i wouldve likely lost my motivation in this, so im glad i followed a tutorial

I figured out how to play audio on the ds, so ill likely now focus on block falling and sound effects

0
nmsoukmandjiev007

Added sprites, all of which i got from itch io. Theres no correlation between some of these, but in my defense i didnt want just jewels because that would be a bit boring! Currently working on line clearing which is giving me a bit of trouble, but it’s getting there

Attachment
0
nmsoukmandjiev007

Got block swiping to work. Havent added any bounds checking or anything, but the system itself works, next thing will probably be drawing sprites or line clearing.

0
nmsoukmandjiev007

Made a grid, and got grid coordinates working! Time make the blocks move when you swipe

0
nmsoukmandjiev007

Managed to get it to run, used the code from simplenfl to make the swipe gestures, and got backgrounds and sprites working.

it will only get harder from here though, but im looking forward to the challenge!

0
nmsoukmandjiev007

Shipped this project!

Hours: 22.17
Cookies: 🍪 215
Multiplier: 9.72 cookies/hr

I made a simulation of a turing machine made by Chris Langton in 1986, as well as his ants. However I decided to make it fully flegded out with custom rules, more ants and colours, as well as a hexagonal grid, which was most certainly the hardest part!

This was super enjoyable to make and it made me learn quite a bit!

nmsoukmandjiev007

Who knew that the camera wouldve been fixed with one line of code?
Anyways some minor bug fixes as well, so now you can zoom in,out and drag your sim around (soon gonna make a release once all the bugs have been exterminated)

Cool simulation included btw. Rules are L1L2NUL2L1R2

Attachment
0
nmsoukmandjiev007

Hexagons are finished!!! This was a huge pain, but at the very least it works and it looks pretty

Attachment
0
nmsoukmandjiev007

Added camera control + fixed a few bugs.
Now you can zoom into ants and back out.
Also spent like 2 hours trying to make a hexagonal grid until i realised how much of a pain it was and kinda gave up, though might get back to it at some point it is fully fleshed out

Also figured out how to speed it up a TON. This was done in less than a second which is really cool

Attachment
0
nmsoukmandjiev007

Added tooltips which took a lot longer than i expected, but it works!
Sadly couldnt figure out how to hide the mouse without it flickering so i compensated by just putting 2 spaces in front of the actual text

Attachment
0
nmsoukmandjiev007

Made a few presets for some rules.
Added default preset, for the original simulation, which always gives the same results no matter what diraction
Added symmetry preset, that shows a symmetrical image that also loops infinitely
Added random preset, which chooses a random amount of ants, and a random amount of colours, all with random rules.
I neglected showing the seed and really regret it, as it just made this beautiful pattern that i will never see again, but it’s alright :’)

Attachment
Attachment
0
nmsoukmandjiev007

Fixed some issues in the website, and then into more, and before i knew it, i used 90% of my credits :(
The c version is fixed though so at the very least something good happened, though the website will not be updated until the project is like 90% done (or once february 9 hits and my credits refresh!)

Anyways here’s a cool symmetrical pattern the ants made

Attachment
0
nmsoukmandjiev007

Made it a website! Its not perfect as i just used emsdk and it looks a bit odd but i will get to that in the future, just happy it works in the first place!!

Try it out here https://app.netlify.com/projects/langtons-ant-sim/overview

Attachment
1

Comments

nmsoukmandjiev007
nmsoukmandjiev007 3 months ago

Fyi the web version does not work properly, and i have run out of credits to deploy again. Sorry for the inconvenience

nmsoukmandjiev007

Optimised the control panel a little bit by reducing the overhead of converting from string to integer, made the ants and colours have random values so there wouldnt be much need to edit too much if one just wants to play around with it

Attachment
0
nmsoukmandjiev007

Finally made it display colours right! Also took advantage of nk_propertyi to add little arrows and remove the overhead of converting from string to integer. Win win!

Attachment
0
nmsoukmandjiev007

Fixed up the random colours being messed up!
Can’t explain why and how to fix it, but hey it works :)
Time to add random direction

Attachment
0
nmsoukmandjiev007

Used nuklear to make a nice control panel. Simulation works like a charm, though there ar still some bugs with the previewed colours and some other things that can be added eg pausing,continuing and speeding up the simulation, though I am very proud of this so far!

Attachment
0
nmsoukmandjiev007

I’m working on my first project! This is so exciting. I can’t wait to share more updates as I build.

Attachment
Attachment
0