itch.io Spring Selects Series A
On Sale: GamesAssetsToolsTabletopComics
Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

SuperSpasm

14
Posts
2
Topics
2
Followers
A member registered Jul 04, 2016 · View creator page →

Creator of

Recent community posts

Hey! I'm kinda swamped atm but might be able to help out a little bit.

my discord is @SuperSpasm#8098 (I'd pm you my email but apparently itch has no messaging system)

hit me up, maybe we can work something out

By a trail for melee weapon, you mean a trail a melee weapon leaves behind that blocks/ harms enemies?
The shodos can get messed up when they're too small, so this might not work.
I might be able to modify the script for it to work but not in the near future.


You should try the asset store, I remember seeing a solution for line collisions there.
If that doesn't work remind me in a few weeks, I might be able to help out :)

Loving the environment. the woods give off an RTS fog-of-war vibe, where you never know how close the enemy may be

So I've gotten a bunch done since I last posted here, so far the systems are working surprisingly good, though the Shodos still look a little off and the monk can get stuck in them.
I figure I'll chronicle some of the technical stuff I did and put with progress gifs at the bottom for a TL;DR version.

#region Technical Rant

So since my original implementation idea I came across a bunch of problems. most of them were small bugs in my code, but the biggest issue I had was the PolygonCollider2D.
at first I just set a bunch of points into it (my Slice.edges) as vertices (that were supposed to match the bounds of the LineRenderer that you see, so what you see is what you collide with.
However, since I'm an idiot and can't read documentation properly, I assumed the order of points passed to collider didnt matter, and it just created a convex shape from whatever you plug in.
Not so. each path is cyclic, so you should end up where you started. this created intresting collisions, as seen in (A).

So I figured I'd try making lots of paths, each one a little BoxCollider2D-like rectange that was self contained. what could go wrong, right?
wrong. apparently having hundreds of paths being set every Update() is not the best thing for your game. I was getting crashes and hangs like crazy.
it took me the better part of a day to figure out it wasn't a bug in my code,but rather a constraint of the engine that was causing the hangs.

After that I had to refactor, which ended up being a good thing because I cleaned up the hell out of my code.
after going back to using a single Path for the polygon, and setting the logic up so it goes around the line (and not just iterating over Slices), it just worked. (B)

So now that the actual Shodo object was working, I started working on implementing multiple Shodos at once.
I wanted to pool my shodos to avoid memory issues from instantiating new Shodos constantly.
my implementation for that was a class that is structured as so:

 public class ShodoPool{
  private Queue<Shodo> availableShodos;
  private Queue<Shodo> detachedShodos;
  private GameObject shodoPrefab;
  private Camera mainCam;
  
  public ShodoPool(GameObject shodoPrefab, Camera mainCam, Transform shodoParent)
  
  public void StartDrawing(ref Shodo currShodo)  
  public void StopDrawing(ref Shodo currShodo)

  private GameObject CreatenewShodoObject()
  public void UpdateShodoQueues()
  public void AddToPool(int amount)
  private bool NotOnScreen(Shodo shod)
}

So this is my first time making an object pool. I have no idea how they aare usually made, but I'm happy with how this turned out.
it basically recycles Shodos into the detached/availableShodos Queue.
The detachedShodos Queue for shodos that are not currently in use by the player, but may still be rendered.
when a Shodo has either erased itself completely, or is off camera, it will move that shodo from the detached queue to the available queue.
I start off filling the pool with 3 Shodos, and more are created if they run out when

The pool is used by ShodoManager to abstract the recycling of Shodos,
and ShodoManager handles adding points to the currently used Shodo by grabbing mouse position.
This is done either every set time, or in Update as soon as the mouse has traveled a minimum distance. (to avoid stacking points close together at odd angles, which looks and acts terrible)

Today I worked a bit on the monk's AI (very simple, I want him to stop when close to an obstacle, and to jump when theres a gap with no platform underneath.
I thought of doing an arc-raycast type thing for him to check if he can jump before he tries, but after some consulting on Discord, decided it's simpler to just jump whenever theres a gap. The monk is basically a Lemming anyway, he's not supposed to have particularly intelligent AI.

#endregion

TL;DR- some progress gifs!

(A) first attempt at collisions, didn't go to well

(B) refactored collisions, Much better!


(C), (D) Multiple Shodos Recycled via Shodo Pool


(E) Monk jumping when reach gap

(F) Stopping when path blocked

(G) Using Shodo to block falling objects


Onwards-

The biggest thing that bothers me with the system right now is that sometimes a Shodo is drawn that is lumpy or has some edges, and the monk will get stuck on it. I'm thinking of doing a pass on the polygons vertices once per frame to smooth them out. we'll see how it ends up.

Also- we need to start thinking level designs and systems to support them! maybe an "ink level" to limit how much you can draw

Mechanics look very cool! looking forward to seeing how it works out

Sounds great! also, "Cute-em-Up"sounds like an awesome fallback title if you don't think of a better one

WARNING: technical rant incoming!

So my basic implementation for the Shodos (brush strokes on screen) is to use a LineRenderer and a PolygonCollider2D that are continuously updated by pointer position (either mouse or touch).

I'm basically mimicking a TrailRenderer (+Collisions) with my LineRenderer. I don't use a TrailRenderer though because then I would have less control over the vertices of the trail (which I have to keep in sync with the collider), and also because TrailRenderer "remembers" the time it took you to draw each segment, and I want it to "erase" and resize at a steady pace, regaurdless of how long it took to draw the line.

Before this jam I tried to make my own LineRenderer from scratch for this purpose (using a Mesh and setting my own vertices, uvs and triangles). but that lead me down a rabbit-hole of Vector math and unforseen situations. I ended up with something that mostly works (minus texture mapping, didn't want to waste more time fixing uvs), and I abandoned it because it was getting way out of scope.

anyway how I'm doing it now looks like this- I break down each bush stroke to "Slices":



with each slice having a Vector3 Center (that goes to the LineRenderer), two edges in a Vector2[] Array (For the PolygonCollider), and a width (that defines the edges).

(Slices are perpendicular to the direction that the line is going at the particular moment they're calculated)

I also made a Slicelist class that holds a list of slices as well as lists for line vertices, polygon vertices, and widths, and it synchronises between them (the idea is that besides the creation of Slices, all vertex-level stuff (adding slices, resizing, deleting) is done using SliceList methods, so that the Shodo class can be much more readable and editable)

Anyway, I'ts not really functional yet, but it's getting there. I just hope it's not going to be too unoptimised since I have to use List.ToArray() 3 times per frame for each of the Shodos I have on screen (to set them in the actual LineRenderer/PolygonCollider2D)


So yeah, sorry for the technical rant, but this feels like a good outlet to not let this stuff just sit in my head, so it's probably not gonna be the last haha

Also if anyone has any comments or suggestions I would love to hear them

(1 edit)

Hey, I'm Jonathan.
I started working on an android project a a few weeks back (really rough prototyping, code was completely unmaintainable)
but I wanted to join the jam, so someone on discord gave me the idea to build it again from scratch for this jam.
So I am! never made a Devlog before but I figure this could be a good outlet for successes and failures.
I'm making it with an artist (Lena) that I met irl, it's her first game ever. I'm also fairly new to dev and this is my first time tackling mechanics as complex as this.


some quick info about the game:

-Platform: android
- Engine: Unity
- Genre: 2D platformer (?)
- Theme: Japanese/Chineese caligraphy and art
- Core mechanic: drawing caligraphic brush strokes on screen that act as platforms.
- Basic story: a Monk finds a dying wolf (or some sort of cainine), helps his soul ascend to heaven (?)
and is followed by the ghost/spirit of the wolf. it's your job to keep the monk from falling to his death(lemmings style)


My goal in this jam is to be motivated by the deadline to finish a bare-bones version of the game with a few levels finished!


Edit: added the fact that I'm doing this in Unity. seemed relevant

I am a Unity dev looking for a team!

Hi! I'm Jonathan, I've been learning Game design and Unity development for a little over 6 months.
I've already Made two complete games, the first of which was at the last instance of this jam! (Can be found here)
I've also designed and made a casual android game (which isn't online atm, I can provide an apk upon request)

I'm making another android game for this jam with an artist, but I'd love to get more experience working with other people, in particular other programmers and 3D artists. However, I'm planning on joining the Global Game Jam, and between that and the other game I'm working on I probably won't be too available towards the end of the jam.That being said, I'd love to team up and make a game!

P.S. My timezone is UTC+2


Skills / Programs:

* Unity2D/3D (more experienced in 2D development but I want to try more 3D stuff)

* C# programming (and a wee bit of Python)

* Game Design

* Good farmiliarity with high school level physics and math (Vectors, forces, graphs etc.)

Discord: @SuperSpasm#8098

(1 edit)

Thanks for your feedback! glad you didn't get stuck since this version has some bugs.

big update coming soon- lots of bugfixes / features/ improvements!


Edit: Update up now!

okay turns out when it asked me to upload a game for submission- it automatically submitted it, so everythings good '^^

i uploaded a game but its not showing up to submit! i get a "you havent uploadeed a game that can be sumbitted yet" message.



PLEASE HELP, 10 MINUTES LEFT!

1. Hi there! What's your name? Want to introduce yourself?

Hey! I'm Jonathan, 22 years old from Israel. I dropped out of high school when I was about 15, ended up mostly self educating to get through my exams. Since I've played around with the idea of becoming a game developer, but there were no decent degrees / programs in my country yet- I decided to study on my own as soon as I finished my mandatory service!
I've been studying aspects of game development/design for about 3 months online, and I love it!

I'm honestly a bit timid about going in to the jam because I've wanted to work with other people for a while, but I'm not sure how much I'll be able to do.. Also I'm pretty late to the game so I hope I can even find a team to work with.

2. Did you participate in the last jam we held? If so, what do you plan on doing better this time? If not, what's your reason for joining?

Nope, I just found out that online game jams even existed last week! But I've been studying in a vacuum for a good while now without too many people to create / talk with about games that I've got to give it a try!

3. What games are your favorites? Did any of them inspire you, or made you want to make your own?

Growing up my childhood favorites were Crash Bandicoot, Spyro the Dragon, Ratchet & Clank, Jak & Megaman Legends 2.
My favorites now are probably (in no particular order): Portal, Bioshock, Mass Effect, The Stanley Parable and Ori & The Blind Forest.

4. Do you have experience with game development? What did you do/with what engine?

I've been studying Unity and C# and messing around in them for about 3 months. So I know my way around the basics. But I've never worked in a team before and don't have much experience with a real structured workflow. But I learn fast! :)
I also have a little experience coding in python (basic stuff, made a text adventure in IDLE from scratch once)

5. Tell us about something you're passionate about!

I really want to try and make different things. I love games like Portal and The Stanley Parable that take what you think a game is and go in an entirely new direction, and even games like the Ori Principle that just have a unique and mesmerising feel to them.

I also really love learning new things. I try to take everything I do and see how I can do it better.

(2 edits)

I am a Beginner Developer/Designer looking for a team to join!

1. Introduction:

Hi!
I'm Jonathan, 22 years old from Israel (UTC+3).
I've thought about becoming a Game Developer/Designer for a while, but since there are no decent programs for those in my country yet, I'm self educating! I've taken a couple courses in Game Design and Development over the past couple months, and have messed with Unity quite a bit, but I have no experience working in a team or on an original project.

In terms of my schedule- my available time is about 09:00 - 22:00 [UTC+3]. I have some immutable appointments in my week (mostly I tutor math some days around 16:30 - 19:00 [UTC+3]). And Fridays/Saturdays are the only time I have to see my girlfriend, so I won't be able to work much during them.
But nearly everything else is fine! :)


2. Skills:

- Unity (mostly basic manipulations in space, creating prefabs and integrating with them with scripts.)

- C# (basic OOP programming, messing with vectors, physics in unity etc.)

Things I'm willing to try:

Designing / brainstorming the game and aspects of it - I like the design aspect, but I never worked in a team and didn't make many games so I don't know if I'm any good at it)

Writing - same as above. If it's an idea that gets me excited I can come up with plots/diologue, but I've yet to recieve criticism about them.

Voice acting - As well as not having experience in this, my recording equipment is sub-par. Still willing to give it a shot though.

3. Programs/Languages: Engines/Programs (for any use, be it art, music, game dev, animation, etc) and markup/programming languages you are familiar with.

  • Unity3D
  • C#
  • Some Python

4. Portfolio:

Besides expanding on a couple projects from a Coursera course, I haven't made anything digital. I made a small paper based-game for a design course, but it doesn't seem very relevant. If anyone wants it I'll send it to them

5. Contact:

[removed to avoid spam]


Looking forward to meeting you! :)