Monday, June 8, 2026
98845ec1-7655-4f8d-b770-fdac3faac31d
| Summary | ⛅️ Clear until afternoon, returning overnight. |
|---|---|
| Temperature Range | 20°C to 28°C (68°F to 82°F) |
| Feels Like | Low: 72°F | High: 95°F |
| Humidity | 80% |
| Wind | 9 km/h (6 mph), Direction: 203° |
| Precipitation | Probability: 6%, Type: No precipitation expected |
| Sunrise / Sunset | 🌅 05:34 AM / 🌇 07:59 PM |
| Moon Phase | Last Quarter (75%) |
| Cloud Cover | 15% |
| Pressure | 1011.99 hPa |
| Dew Point | 69.26°F |
| Visibility | 6.0 miles |
If you have been to Governor’s beach over the past year, you may have wondered about the large tetrahedron-shaped blocks that have been piled up further up on the coast, without any obvious purpose.
Though typically visible inside of the water and not piled on shore, this is one form of breakwaters commonly used in Cyprus.
And with Cyprus’ coastline under increasing threat of erosion, breakwaters have become the go-to, one size fits all solution. Take Paphos district for example where a tender was recently issued for a total of 16 further breakwaters to complement those already in existence.
The sheer number of them proves a point that many environmentalists have long been making. While designed to fight coastal erosion, the increased number of planned breakwater projects can potentially bring more harm than good. For, if you build a breakwater to protect one beach, you can end up endangering a beach further along the coast which means that beach also needs a breakwater to halt erosion, and so it goes on to the next beach, and the next.
Around 80 per cent of “soft-coastal” areas – made of natural materials like sand or gravel – in Cyprus are currently under severe human-made erosion, said Xenia Loizidou, civic engineer and United Nations ambassador for coastal protection in the Mediterranean.
This, she says, is primarily due to tourism, sand mining and construction work within the coastal buffer zone. Another ‘guilty’ party is the long-term construction of dams that cut off the river flow and thus minimised the sediment carried by the rivers that “fed” the beach.
“Breakwaters are one of the available technical solutions, but it’s a heavy solution and we cannot just implement it anywhere,” Loizidou said.
She warned that breakwaters have been excessively employed as a measure to combat erosion, without sufficient consideration of alternatives.
Loizidou put it this way: “It’s like having a flu and instead of taking Panadol, you have open-heart surgery.”
She explained that the needs of different coasts can vary significantly, emphasising the necessity of conducting comprehensive studies on which to base solutions to prevent erosion and protect the environment.
“Each coast has its own needs,” Loizidou said, adding that if a solution is effective for a beach in Larnaca, it may not necessarily be applicable to a beach in Paphos.
According to her, one of the reasons for this development is a lack of proper studies.
“Due to the procurement system, there is a tendency to take the cheapest offer, and cheap studies are not necessarily the best ones and that’s why we have studies that don’t necessarily consider the characteristics of the coastal area,” she says, emphasising that coastal areas are dynamic structures that require intensive studying.
“Breakwaters act as a physical barrier that reduces the energy of incoming waves. This reduction in wave energy helps decrease potential coastal erosion most of the times,” environmental officer Georgios Nikolaides of the environment department told the Cyprus Mail.
“Their primary environmental impact is the alteration of local hydrographic conditions and sediment transport patterns,” the department said. “Additionally, they can act as a physical barrier that disrupts the natural movement of marine animals.”
According to the environment department, breakwaters may reduce erosion and even create shelter for small marine organisms on a specific beach, but at the same time often increase erosion on adjacent coastlines by altering water circulation.
Supposed to protect the coasts, breakwaters therefore inevitably constitute a disruption to the local environment.
“Breakwaters are not the solution to protect the coastline from erosion,” Terra Cypria’s head of environment Klitos Papastylianou told the Cyprus Mail.
He explained that part of the problem is that building breakwaters directly affects the coastal zone, shifting the problem of erosion to elsewhere.
Aside from erosion, breakwaters also affect the nearby marine environment, leading to the loss of marine habitats like reefs, sea caves and sandbanks.
Their creation also impacts the environment inland. Breakwaters require large quantities of natural resources like limestone, thereby leading to the expansion of existing or the creation of new quarrying zones. Basically, it’s a case of gouging out the land to ostensibly protect the coast.
According to Papastylianou, the main alternative to the construction of breakwaters is the implementation of nature-based solutions, adjusted to the characteristics of the area in question.
“During the past few years, the department of environment rightly decided to reject several plans and projects for the construction of breakwaters in all districts, by adopting and implementing the guidelines on nature-based solutions for adaptation to climate change in different coastal typologies,” he said.
The environment department confirmed Papastylianou’s statement.
“The department has rejected requests in the past. This occurs when our evaluations indicate that the proposed structures would cause significant harm to the area’s natural environment,” the department told the Cyprus Mail.
Even so, despite growing concerns over their environmental impact and overall effectiveness, breakwaters are expected to remain a key feature of coastal protection efforts.
The Paphos example – where the tender for the creation of a total of 16 breakwaters is set to be issued this year mentioned earlier – proves the point.
The breakwaters – 11 parallel and five transverse – will extend from Yeroskippou to the municipal baths of Paphos, with works expected to begin in spring 2027.
Meanwhile, the mayor of Dromolaxia-Meneou, Kypros Andronikou, recently issued a desperate call to authorities, requesting they immediately proceed with measures to combat erosion along the coastlines of the island, warning that the problem was “constantly worsening”, demonstrating the immediate threat posed by proceeding erosion.
Andronikou’s warning comes two months after Cyprus Institute president, Stavros Malas, speaking at an international conference in Aglandjia, warned that nearly half of the island’s beaches were at risk of extinction by the end of the century, with sea levels expected to rise up to one metre.
With pressure mounting for new coastal protection measures, questions also arise over how such projects are approved and who ultimately decides whether they go ahead.
“Our role is to evaluate projects from a holistic viewpoint to ensure that any proposed coastal protection measure does not negatively impact the local or surrounding environment,” the environment department said.
The final decision, however, is made by the public works department, which rules after evaluating requests submitted by public authorities. The construction of breakwaters is then financed either directly by the public works department or through local administration budgets.
As erosion increasingly threatens parts of the island’s coastline, the debate over breakwaters highlights a question that extends far beyond the island: whether to prioritise rapid intervention or invest the time needed to ensure that today’s solutions do not become tomorrow’s problems.
The state laboratory on Sunday confirmed that an incident which saw more than 70 people develop symptoms of food poisoning and 21 people hospitalised was caused by salmonella bacteria found in a batch of chicken à la crème, as well as bacillus cereus bacteria found in rice with vermicelli and penne with mushrooms.
Public health service director Herodotos Herodotou told the Cyprus News Agency that a total of nine samples were taken from the food which was served at the wedding reception, which took place in Limassol last weekend, and that the service is awaiting the results of further analyses which are being undertaken.
He added that the food tested so far was found to be “unsuitable” for human consumption.
Asked how the service will proceed, he said interviews will now be held with those affected, while the Limassol district office has also been asked to write a report about the incident.
The matter had come to light after the newlywed couple had filed a complaint about their guests falling ill, with investigations finding that exactly 74 people had developed symptoms of food poisoning after the wedding.
Herodotou had confirmed earlier in the week that the catering company which supplied the wedding has temporarily suspended its operations, with the authorities empowered to order rolling four-day suspensions while investigations into the matter are ongoing.
Edek on Sunday refused to accept party leader Nikos Anastasiou’s resignation after he had attempted to leave the post in light of the party losing all its seats at last month’s parliamentary election.
As such, he remains party leader for now, with a party conference having been scheduled for November.
He had taken over the party’s leadership in June last year following the surprise resignation of Marinos Sizopoulos, who had led the party for 11 years after facing criticism in the aftermath of what was seen then as a disappointing return of just five per cent of the vote at the 2024 European Parliament election.
A year on, Edek won just 3.25 per cent of the vote, recording the party’s worst result in its 56-year history. Anastasiou did not stand in this year’s election.
Speaking at the party’s office as the results came in last month, he said that “the result does not please us and unfortunately is an injustice to both Edek and to Cyprus itself”, before lamenting his party’s lack of unity during the months preceding the election.
“From the first day I took over as Edek leader, I did everything humanly possible to gather and unite the peace of our party. Despite my continuous and sincere efforts, some fellow activists preferred to stay away,” he said.
He added that he “fully” accepts “my share of the responsibility” for the result, but said that others should “take on their responsibilities for seeing the danger Edek was facing and choosing to stay away”.
When we came to live in Cyprus 26 years ago now, water was rationed to two days a week on our road. However, the house we later bought had a well in the garden, so we were pleased about that, and I was able to start a garden after all with flowers and not just cacti and succulents, useful though they were.
We quickly learned that two days’ worth of water soon ran out and that the well dried up quite quickly too during the very hot summers, so we had to find some other source, however small, to have some water for the veranda plants, so that they didn’t expire too quickly. It was also a matter of choosing plants that didn’t need constant watering to survive.
Whether you live in a house or an apartment keep a pail or watering can in your bathroom, so that even that small amount collected daily from the cold water that precedes the hot in the shower, can be used for your plants. It can also be used to flush the toilet!
This year we have been lucky as we had plenty of rain earlier on with the result that not only have the plants enjoyed it, but the weeds have thrived too. So, we hope that our special plants will thrive on this bounty.
Certainly, the many plants of Aeonium arboreum flourished after all the bountiful rain and I have not seen such large flower heads on these plants for years. Their golden flowers certainly dominated parts of the garden.
Whilst I was disappointed in the very few stems of the white bearded irises, Iris albicans, the blue irises, Iris germanica, have had many tall, wonderful flower stems for me to enjoy.
A reminder that bearded Irises, and there are many hybrids these days, like to have their rhizomes pointing into the sun. The other kind of irises known here as ‘Dutch Irises’ grow from a bulb and look better in large groups to show off the white, yellow or deep blue flowers.
Looking around the garden, some climbers I thought we had lost altogether through the frost that we had very early on, as well as lack of any early rain, eventually came back into their glory. I thought that we had lost Pyrostegia venusta, which always gives some early colour to the garden before the main beds are in bloom.
Pyrostegia venusta, commonly known as ‘Flame Vine’ or’ Orange Trumpet Vine’, is a plant belonging to the Bignoniaceae family, which is quite a large family. These woody ever-green vines are mostly natives of southern Brazil, Bolivia, northeastern Argentina and Paraguay. They also enjoy the gardens and climate here, but beware they have been known to cover the side of houses.
Campsis radicans is also a member of this family and thrives in a sunny position showing off its large blooms. This climber can put on a lot of growth in a season, so some pruning in late winter or early spring may be necessary to keep it in shape.
Strangely enough, Jacaranda trees also belong to this family and are showing off their pretty blooms just now. However, to enjoy the lovely mauve flowers they need to be grown in sunshine, so don’t grow them if you live at high elevations – around 300 metres is the maximum – and only if you have a lot of space, as they grow very quickly reaching 15 metres and can soon tower over the garden very quickly. Interestingly, if the winter is wet the leaves will appear before the flowers so you may have to wait a while for them after all the winter rain. Sometimes you can be lucky and have a second flowering at the end of the summer. These lovely trees are not salt tolerant, so maybe not suitable for coastal gardens.
Smaller and more manageable trees are likely to be Caesalpinia gilliesii, whose dainty yellow flowers with their long red stamens that dance in any summer breezes, draw much attention to themselves. These delightful trees, originally from tropical America, grow to between 3-4 metres, so are very manageable.
Another small tree or shrub that shares its pretty flowers with us in our pre-summer season is the Australian Hibiscus, with the botanical name of Alyogyne huegelii. This hardy plant prefers dry locations, and is actually classified as a desert plant but it survived our winter frosts and lashing rain to show off its pretty lilac flowers later in the spring.
Alyogyne huegelii causes much comment from passersby. Unlike the usual red hibiscus, which is widely grown here and provides a feast for any mealy bugs, this one does not attract them at all, which is good news! Some pruning after flowering will help keep it in shape. Alas, it is very much a spring flowering shrub, so enjoy it whilst you can.
Most citrus fruits will have been harvested by now and you may find that they are smaller than usual. Of course, lack of rainfall can cause this and with all the winter storms and gales, you may find that this year’s crop is lying on the ground.
The interesting thing about citrus fruits is that if they have endured a hot summer the peel will be thick in order to protect the fruit underneath, whilst a wet summer will produce thinner peels. In regions with cold winters, the skins can be thicker than in areas with mild winters. Young citrus trees tend to produce thicker skins, but once trees mature, they produce better quality fruit.
You may also notice that the skin of fruit on the shady side of a tree is thicker than that of the fruit on the sunnier, warmer side of the tree. Unfortunately, there’s not much you can do about this other than clear away anything that might block sunlight from getting to your trees.
Here, we found that lots of flowers were knocked off the trees during the recent heavy rain storms, so we may not have many fruits at all later on, which is a great pity!
Other parts of the garden have ‘ground cover’ plants, which are blooming now and delight me every year covering parts of the garden where the soil is not as good as other areas. I am not so keen on gazanias, although they are good cheerful ground cover plants and their brightly coloured flowers will brighten up a dull day, not that we get many of those here!
A favourite is Oenothera speciosa. A pretty delicate-looking plant from around the Mexico area, it will grow in a large circle around the edge of a bed with bougainvillea draping downwards and drawing attention to this particular plant. They can become invasive but any visitors to the garden covet this delicate plant, so a cutting or two helps to keep under control!
Osteospermum are superb ground cover plants belonging to the Calenduleae family, one of the smaller parts of the sunflower/daisy family from South Africa and are often known as ‘daisy bushes’ or ‘South African daisies’.
In a mild winter it is possible for some of the plants to survive by cutting them back so that they will grow again the next year, though results tend to be mixed and it is often not worth the effort as the stems may become very woody as a result. You can also take cuttings but there is no guarantee that the colours will be the same.
However, you can love them or leave them, as they are very promiscuous and seed everywhere and you may be inundated before long with many seedlings around the mother plant. There is a bonus though that if the bees have done their work, you may have some interesting new petal colourings to follow.
In the garden centres you may find that the lable on some of the pots describes the plant as Dimorphotheca, which is also a member of this family Asteraceae, as well as a native of Southern Africa. These plants are native to Botswana, Eswatini, Lesotho, Namibia as well.
You may ask what is the difference between Osteospermum and Dimorphotheca? Whilst the former are regarded in some places as small shrubs or perennials, they make a wonderful show en masse and some of the petals may curve inwards in an interesting spoon shape.
Although Osteospermums were formerly known as ‘Dimorphotheca’, one has to remember that this name is now only used for the annual forms of this plant, which may die after flowering.
Four men who stand accused of terror-related offences were all handed renewed remands by the Larnaca district court during behind-closed-doors hearings on Sunday.
Two of the four, aged 38 years old and 32 years old, were liked to finds of large quantities of materials which could be used to create explosives, including ammonium nitrate, while the remaining two, aged 57 years old and 54 years old, are alleged to be their associates.
The 38-year-old and the 32-year-old will now remain in custody for four more days, with the police reporting that one of the pair admitted that they intended to target Israeli nationals.
At present, the police say they are investigating the possibility that the pair were collaborating with other individuals in Cyprus.
The police say that the 32-year-old had been residing in Cyprus “for the last few years”, and that he is “linked” to two premises in which the materials were found.
Of the 38-year-old, the police say he was in Cyprus without the requisite residence documents, and that they believe he initially entered the island via the north.
The materials were first found in a residential property near Governor’s Beach on May 21, with a further amount of similar materials being found in a second-floor flat in Larnaca two days later.
Chinese films will be screened in Nicosia and Limassol this June as the Embassy of China in Cyprus, the China Film Administration, and the deputy ministry of culture jointly present Chinese Film Week in Cyprus, running from Wednesday to June 15.
The five days of screenings highlight not only the cinema world but also take place in celebration of the United Nation’s International Day for Dialogue among Civilizations and the 55th anniversary of diplomatic relations between China and Cyprus.
Chinese Film Week in Cyprus will open on June 10 at the Nicosia Municipal Theatre. The first day will begin with a special youth screening of the animated feature Boonie Bears: The Hidden Protector at 4pm, introducing younger audiences to one of China’s most popular animated franchises.
Later that evening, the official Opening Ceremony will welcome distinguished guests from the political, business, academic, cultural and artistic sectors, alongside members of the diplomatic corps and representatives of the Chinese community in Cyprus.
A highlight of the opening night will be the premiere screening of The Sound of Shanghai, directed by acclaimed Cypriot artist Marios Joannou Elia. The film presents a unique portrait of Shanghai through the fusion of music and intangible cultural heritage, capturing both the city’s rich traditions and its modern dynamism. The screening will be held by invitation only.
Visitors to the Municipal Theatre will also have the opportunity to explore a dedicated Chinese-Cypriot cultural experience area organised with the support of the Confucius Institute at the University of Cyprus.
The programme continues on Thursday with A Table for Twoat Pantheon Theatre at 8pm, a warm and engaging film that explores urban food culture, friendship and the personal journeys of young people in contemporary China.
On June 12, the Chinese Film Week travels to Limassol. There, audiences can enjoy the animated feature I Am What I Amat the Cyprus University of Technology (Tepak). Supported by the Confucius Institute at Tepak, the film draws inspiration from the traditional art of Chinese lion dancing and follows young dreamers striving to overcome obstacles. The same evening, Pantheon Theatre in Nicosia will host a screening of the Hong Kong comedy Night King, offering audiences a glimpse into Cantonese humour and urban life.
The action thriller The Shadow’s Edge takes centre stage on Saturday, combining high-tech crime, police investigations and psychological suspense. The following evening, audiences can watch It’s OK, a contemporary drama that explores family relationships, generational differences and women’s personal growth through a blend of humour and heartfelt storytelling.
The festival will conclude on June 15 at K-Cineplex in Nicosia with a Closing Ceremony and the screening of Blades of the Guardians: Wind Rises in the Desert. Set in ancient China’s Western Regions, the action-packed film combines martial arts, adventure and historical storytelling.
Representatives from the China Film Administration, film production and distribution companies, as well as participating directors and actors, are expected to attend the closing events and meet audiences.
Chinese Film Week in Cyprus
Five days of film screenings and events. June 10-15. Pantheon Cinema, K-Cineplex, Nicosia Municipal Theatre, Nicosia. Cyprus University of Technology, Limassol. Subtitles in Greek and English
A new exhibition entitled Modern Nicosia to celebrate the city’s often unappreciated modernist architecture is on display at Mayor Lellos Demetriadou Square (former Municipal Market agora) in the centre of the old town.
Inaugurated a week ago by Nicosia mayor Charalambos Prountzos in the presence of former European Union culture commisioner Androulla Vassiliou and participants attending the European Cultural Heritage Summit 2026, the exhibition consists of photographs and drawings showcasing the most outstanding examples of Cyprus architectural modernism located on both side of our divided capital.
The photographs and the accompanying notes detailing the history of the buildings attest to the research zeal of members of the Europa Nostra Heritage Hub in Nicosia, the body created last year as part of a larger European pilot project, the ‘European Heritage Hub’ led by Europa Nostra together with a consortium of 20 partners and supported by the European Union. The project aims to safeguard cultural heritage while contributing to building a more inclusive, sustainable and digital Europe.
Coordinated by architect Natalie Neophytou and urban sociologist Ozlem Unsal, the project Modern Nicosia was conceived to highlight the legacy of modern architecture on both sides of the divide by drawing attention to landmarks of this architectural style across the city. Above all, the aim has been to raise awareness and foster greater appreciation of its significant if often overlooked legacy.
“Actually, making people realise that these buildings are also part of our heritage and part of the history of our city and that they also are worth preserving was a very important part of our project,” says Neophytou, noting how this architectural period marks the time when Nicosia began to expand beyond its walls. “Modernism,” she says “formed the urban fabric of the city that we know today.”
The research team she and Unsal led was made up Greek and Turkish Cypriot conservation architects, urban planners, architectural historians and theorists plus visual anthropologists. They worked voluntarily for some six months gathering information about the island’s leading architects from both communities.
The exhibit display consists of 40 selected buildings, cinemas, restaurants, factories, churches, hotels, hospitals, shops and apartment blocks, from all across the capital. Twenty of the buildings are located within the Venetian Walls, 20 in areas outside.
Among them, we see such iconic examples of Cypriot modernism as the Caglayan bar, constructed by Greek Cypriot chief mason Pavli, the Pallas cinema, next to Paphos gate, designed by Panayiotis Stavrinides, the Jerusalem Patriarchate office building in Ledra street, designed by architects Zembylas and Kythreotis, and the Colocassides estate building designed by Costas Vafeades and Dinos Fissentzides between 1965 and 1973 which stands next to Eleftheria square.
Then there’s the Boyaci shops and apartments attributed to Loucas Hadjilukas which were built in 1954 in Istanbul street, the Oguz Basak house designed by Ahmet Vural Behaeddin and Ercan Hifzi in the 1960s on Shakespeare avenue, the Huseyin Sarper residence designed by Abdullah Onar, close to Caglayan.
All the buildings shown at the exhibition were built betwen the 1930s and the 1970s. Unfortunately, as Neophytou and Unsal point out, despite their architectural significance, a considerable number of them are curently empty and in danger of demolition.
“That is why it is so important for us to reintroduce them and make people aware of their existence,” says Unsal. “And not only because of their architectural value and beauty but also because so many of them showcase our shared heritage. According to our research, certain Turkish Cypriot families worked with Greek Cypriot architects who designed and constructed buildings on this side, and also some buildings in the south were designed by Turkish Cypriot architects. So, these buildings and their stories belongs to all of us.”
Neophytou cautions about the need for care. “We are losing more and more of them and this must end.”
The message that the Modern Nicosia project delivers across the divide is echoed by the two Nicosia mayors Charalambos Prountzos and Mehmet Harmanci. In their speeches at the The European Cultural Heritage Summit 2026, each underlined the importance of Nicosia’s heritage and pledged to re-establish the close cooperation that was forged in the 1970’s by their pioneering predecessors Lellos Demetriades and Mustafa Akinci with the Nicosia Master Plan (NMP).
“We have agreed on several flagship projects which will follow the steps of our visionary predecessors,” Prountzos announced in remarks to the European Heritage Hub Forum 2026 at the Cyens Centre after the exhibition opened in south Nicosia on May 29. “Our number one step is to re-establish the Nicosia Master Plan and utilise an existing mechanism to continue to plan for the city as a whole. The number two step is to integrate the cultural heritage element into the urban design of the city.”
Next day, in the course of a summit panel on “Shared Heritage Shared Future” at the Bedestan in north Nicosia, Harmanci endorsed what his opposite number had declared, confirming that “together with the Greek Cypriot mayor we have decided to revive and re-install the bicommunal Nicosia Master Plan team.”
He added that NMP teams are currently working on devising a concrete mandate, strategy and work programme and that he expects they will be able to make an official announcement spelling out the details in the coming months.
While both sides have lengthy lists of what has to be done to revive the NMP and just which areas of old Nicosia have to be prioritised, both are agreed that the two sites that require the most immediate attention are the Venetian Walls and the Green Line.
“If we don’t renovate the Walls urgently we will lose them, and if we lose them we will lose the spirit of Nicosia,” Harmanci warned, while Prountzos called for focusing on the reintegration of the Nicosia buffer zone into the fabric of the city.
Europa Nostra is an enthusiastic suppoter when it comes to the revival of the NMP.
“The Venetian Walls are an extraordinary project,” the organisation’s secretary-general Sneska Quaedvlieg-Mihailovic declared at the Bedestan session. “We always say we want to tear down the walls. But here, while we want to tear down the walls between the two communities, we also want to protect these physical walls because they are a factor of the unification and not separation of the multicultural Nicosia.”
The European Cultural Heritage Summit 2026 took place in Nicosia between May 26 and 30 on both sides of the divide.
The Modern Nicosia exhibition is in south Nicosia till June 10 and then on June 13 moves to the north – where it will be in Iplikbazari Street, close to the Rustem Bookshop and Evkaf.
President Nikos Christodoulides on Sunday refused to be drawn into discussions over whether he will perform a cabinet reshuffle in the aftermath of last month’s parliamentary elections, which saw two of the three parties which support his government lose all their seats in the legislature.
“I have no comment. Reshuffles are not announced, they are executed. When something happens, there will be an announcement made by the presidential palace,” he told reporters during a visit to the Paphos district village of Emba.
Both Dipa and Edek lost all their seats in parliament on May 24, with Christodoulides at the time lamenting both parties’ electoral wipeouts, saying, “Dipa and Edek deserved to be in the new House, and have proven it”.
Between them, the two parties control three ministries, with Labour Minister Marinos Mousiouttas and Defence Minister Vasilis Palmas belonging to Dipa, and Agriculture Minister Maria Panayiotou belonging to Edek.
Christodoulides’ most recent cabinet reshuffle was carried out in December last year, with a total of six changes being made to cabinet’s makeup.
Michael Damianos was moved from the health ministry to the energy ministry, being replaced by Neophytos Charalambides, Mousiouttas was appointed as labour minister, Costas Fitiris was appointed as justice minister, replacing Marios Hartsiotis, who was demoted to the role of commissioner of the presidency, and Clea Hadjistefanou-Papaellina was appointed as social welfare deputy minister.
Edek had at the time expressed dissatisfaction with the reshuffle, with party leader Nikos Anastasiou having said that “we expected that the president … would see Edek in a better light”, but ruling out the prospect of withdrawing his party’s support for the government.
An earlier statement made by the party said that “Edek’s sincere efforts so far to contribute with proposals and positions to the success of the government’s work and its selfless behaviour seem to have not been appreciated,” and that “the rudimentary information shows a lack of respect for Edek.”
However, in advance of the reshuffle, it had been widely reported that Panayiotou may lose her job after having made comments deemed insensitive in the midst of a wildfire which tore through the Limassol district in July last year and killed two people.
She said of the fire that “the only way we could have prevented [it] was for it not to have started”.
Since then, calls for her to resign have only grown, with House President Annita Demetriou and Akel leader Stefanos Stefanou both having demanded that she be relieved of her duties in light of an ongoing outbreak of foot and mouth disease.
“In such serious cases, society expected a unified coordination of operations and communication, from the agriculture minister and all the competent services … When the management of a crisis leads to such chaos, taking responsibility is not a choice, it is an obligation. That means resignation. Because patience has its limits,” Demetriou said in March.
Stefanou, meanwhile, said that it is “incomprehensible” that Panayiotou remains in post, decrying the “incomprehensible insistence of the president to keep the agriculture minister in her position, despite her blatant inability to adequately respond to the serious issues she was called upon to manage”.
“Whether it is the fires of last summer, the water issue, or now with the foot and mouth crisis, the minister proves to be inferior to her circumstances, and so assuming political responsibility is the only way out of the impasse,” he said.
United Nations Secretary-General Antonio Guterres has a “very specific plan” for the next steps to be taken in efforts to resume talks geared towards a solution to the Cyprus problem, President Nikos Christodoulides said on Sunday.
He told journalists during a visit to the Paphos district village of Emba that Guterres had informed him in March of his intentions.
“He has a very specific plan, a specific design, and I share his approaches and views. The effort that is underway is this, with [Guterres’] reasoning to be transformed into something very specific which will lead to the convening of an enlarged meeting, essentially to restart talks,” he said.
UN envoy Maria Angela Holguin is set to arrive on the island and hold meetings with both Christodoulides and Turkish Cypriot leader Tufan Erhurman on Monday, and Christodoulides described his planned meeting with Holguin as “very important”.
“[It is] a meeting which is a continuation of many other meetings which have been taking place for a long time, and which started with [Guterres’] visit to Turkey, the discussion he had with the Turkish president [Recep Tayyip Erdogan], and then our meeting, and what we discussed in Brussels in March,” he said.
He added that during Holguin’s visit, she will “see where we are, how to give further impetus, so that we can achieve the goal of convening an enlarged meeting, during which the resumption of talks will be announced”.
“So, I look forward to tomorrow’s meeting and hope that there will be results,” he said.
Holguin’s visit comes with sources having informed the Cyprus Mail that Erdogan has green-lit the “new initiative” being undertaken by the UN with the aim of bringing about a resumption of formal negotiations on the Cyprus problem.
Erdogan is said to be of the view that the lack of a solution to the Cyprus problem has “unduly cost Turkey through no fault of its own” in recent decades, particularly in light of the fact that Turkish governments led by Erdogan supported both the 2004 Annan plan referendum and the failed negotiations in 2017 at the Swiss ski resort of Crans-Montana.
The sources said that Turkey’s support of both the 2004 referendum and the 2017 negotiations, both of which were rejected by the Greek Cypriot side, constitute evidence of Erdogan’s “pragmatic and constructive stance” and “will to engage in the hope of securing a solution to the Cyprus problem”.
The question of when a “new initiative” on the Cyprus problem may be undertaken has been ongoing for weeks, with Erhurman having said a month ago that such an initiative will begin in July, following the conclusion of Cyprus’ six-month term as the holder of the Council of the European Union’s rotating presidency.
However, the Greek Cypriot side has insisted that such an initiative is “already underway”, with government spokesman Konstantinos Letymbiotis having said that Christodoulides had “made public this initiative” after he met Guterres in Brussels in March.
Holguin most recently visited Cyprus in January, holding a tripartite meeting with both leaders, and saying thereafter that no enlarged meeting on the Cyprus problem could be held until more before “results on the confidence-building measures” between the island’s two sides are achieved.
Some have suggested that the next enlarged meeting may take place as early as next month, exactly a year after the most recent enlarged meeting was held on July 16 and 17 last year, though it appears thus far that this timeline is likely to be extended.
The French government is on Monday expected to sign a status of forces agreement on Monday, allowing it to station troops in Cyprus, according to reports published on Sunday.
The Cyprus News Agency reported that the agreement is to be signed by French Armed Forces Minister Catherine Vautrin and Cypriot Defence Minister Vasilis Palmas in Nicosia, with both set to attend the informal European foreign affairs council (Fac) meeting in its defence configuration in Cyprus’ capital on the same day.
Plans for a status of forces agreement had been announced by Cypriot government spokesman Konstantinos Letymbiotis when French President Emmanuel Macron most recently visited the island in April.
President Nikos Christodoulides had said at the time that the agreement will “strengthen humanitarian military cooperation and joint action at a regional level”, and “provide for the presence of French forces on Cypriot territory for humanitarian purposes”.
Macron had spoken at length on the matter of defence during his visit to Cyprus, saying that the mass deployment of European military hardware in and around Cyprus after the island was hit by an Iranian-made drone in March, “constituted a reaffirmation of our determination to secure Europe’s space”.
“I said it in a simple way on March 9, that when Cyprus was attacked, it was Europe which was attacked,” he said.
As such, he said, “we therefore reinforced defence capabilities in the region with the deployment of military assets, in particular with the French carrier strike group” belonging to the aircraft carrier the Charles de Gaulle, which has been in the region since last month.
“This support and this concrete manifestation of the solidarity which links us as members of the European Union, and in terms of relations between France and Cyprus, was bolstered in December in the form of the strategic partnership,” he said, referring to the deal he had signed with Christodoulides in Paris at the end of last year.
However, the plans have not proved universally popular in the region, with Turkish Cypriot ‘prime minister’ Unal Ustel having lambasted the planned agreement as “extremely dangerous, provocative, and an unacceptable step”.
He said the plans “are likely to seriously damage the atmosphere of peace and tranquillity on the island”, and that Christodoulides and “people of his mindset” speak “on the one hand … of a new negotiation process, while on the other ignoring and disregarding the Turkish Cypriot people”.
“This contradictory stance clearly reveals his true intentions,” he said.
He then added that “any military presence or action in Cyprus requires the consent and approval of the Turkish Cypriot people”, and that “any action taken without this approval is null and void under international law”.
“France, known for its exploitative approach to almost every country it enters, can only offer the Greek Cypriots great disappointment in the long run,” he added, before saying that “France, as an EU member state, poses one of the biggest obstacles to a fair and lasting solution in Cyprus with its attempts to deploy troops to the island”.
He went on to say that “what is expected from Macron and from the EU is that they abandon their colonial mindset regarding the Cyprus issue and adopt a fair stance”, before warning that “steps taken, and those intended to be taken, which disregard the Turkish Cypriots will inevitably receive the necessary response”.
“You are transforming southern Cyprus into a base for foreign soldiers and a sphere of influence for foreign powers. The consequences of this policy will neither benefit you, nor the Greek Cypriot people. My advice is to abandon these dangerous steps, which will jeopardise your future, as soon as possible,” he said.
“Otherwise, you will be the one who loses again.”
Likewise, Turkey’s ruling AK Party’s spokesman Omer Celik said that “France’s assessments and actions in the entire region, from the Sahel to the Mediterranean, have been repeatedly demonstrated as flawed over the past few years”.
“It would be in everyone’s best interest for France to abandon these approaches and to address its alliance with Turkey on a realistic basis,” he said.
Foreign Minister Constantinos Kombos pledged to deepen relations between Cyprus and Uzbekistan, as he met his Uzbek counterpart Bakhtiyor Saidov in the country’s capital, Tashkent, marking the third leg of his tour of central Asia.
He thanked Saidov for the “warm welcome” he was given to Uzbekistan and the “productive discussion” which was held, before adding that both he and Saidov discussed ways to “further expand” relations and “enhance economic cooperation” between the two countries.
Additionally, he said that they both endeavoured to “strengthen engagement both bilaterally and in multilateral settings”.
He also made reference to the fact that Cyprus is the current holder of the Council of the European Union’s rotating presidency, and said that within that framework, “we remain committed to unlocking new areas of mutually beneficial partnerships”.
Saidov, meanwhile, said that he and Kombos had “discussed issues related to the further development of … relations”.
“Particular attention was given to expanding cooperation in trade and investment, transport, logistics, strengthening ties between business communities, and exploring opportunities for implementing joint initiatives,” he said.
He added that he and Kombos had “also reviewed regional and international issues of mutual interest”.
Prior to his arrival in Uzbekistan, Kombos had previously visited both Kazakhstan and Tajikistan, arriving in the former alongside President Nikos Christodoulides earlier in the week and visiting the latter on Friday. The final leg of his tour of central Asia is set to see him visit Kyrgyzstan.
All four of those states, alongside Turkmenistan, signed a joint declaration alongside the European Union last year precluding any recognition of the north as an independent country, with that declaration coming at a time when the Turkish Cypriot side, led by Ersin Tatar, advocated for a two-state solution to the Cyprus problem.
The joint declaration stated that all five countries “reaffirmed our strong commitment” to United Nations security council resolutions 541 and 550.
Resolution 541 said the security council “deplores the declaration of the Turkish Cypriot authorities of the purported secession of part of the Republic of Cyprus” while calling on UN member states not to recognise the north.
Resolution 550 said it “reiterates the call upon all states not to recognise the purported state of the ‘Turkish Republic of Northern Cyprus’, set up by secessionist acts, and calls upon them not to facilitate or in any way assist the aforesaid secessionist entity”.
That joint declaration provoked anger among Turkey’s opposition, with Ozgur Ozel, the then leader of the CHP who was last month removed from that role by a court ruling, saying that the joint declaration’s signing was evidence of a “collapse” of the country’s foreign policy.
He also claimed that the status of Cyprus was a key part of a deal brokered by Turkish President Recep Tayyip Erdogan and United States President Donald Trump to allow the arrest of Istanbul mayor Ekrem Imamoglu in March last year.
Meanwhile, Turkish Parliament speaker Numan Kurtulmus had said shortly after the signing of the joint declaration that the four Turkic states which signed the joint declaration – Kazakhstan, Kyrgyzstan, Turkmenistan, and Uzbekistan – were expected to “make up for it”.
Sunday’s weather will be mostly clear across most of the island, though clouds are expected to gather in parts during the afternoon.
Those clouds may produce rain and even the odd storm in the mountains, though elsewhere, clear skies and sun are expected to persist throughout.
Temperatures are expected to rise to 36 degrees Celsius inland, 30 degrees Celsius on the north, southeast, and east coasts, 28 degrees Celsius on the rest of the coasts, and 27 degrees Celsius in the mountains.
Overnight, the skies are expected to be mostly clear, though light fog and mist is likely to form during the early hours of Monday morning.
Temperatures will drop to 17 degrees Celsius inland and on the north coast, 19 degrees Celsius on the rest of the coasts, and 15 degrees Celsius in the mountains.
Rain will be possible during the afternoons of Monday, Tuesday, and Wednesday, with thunderstorms not out of the question, with light fog and clouds expected during the mornings.
Temperatures will remain stable throughout the first half of the week,
I'm a solo dev and have had my steam page up for almost 2 years now and only have a small 140 wishlists (kinda demoralizing). I feel like my game is fun to play but not very visually striking also tried advertisment on reddit and youtube mostly this will be my first commercial game ever. I have been making small projects since 2017 and finally decided late in 2023 to start a large project. I really enjoyed the dev process of a bigger game but I also need to make some sort of money from this project to justify all the time and effort I put into it. Looking for advice from devs that have released at least one game before ideally solo or small teams.
Thanks in advance for any and all advice.
I’m writing a visual novel fangame with some friends and we’re currently finishing up the script and getting started on working with artists. Since it’s a volunteer/for fun type project, we were planing on asking around in our Discord server for anyone willing to help out. While finding help isn’t the hard part, I’m concerned with two things:
How are artists divided up usually (both in small indie projects or larger studio projects)? Is it like “one or multiple people do backgrounds, others do character art, others do UI, etc.?
What do you do if different people have different styles of art they usually draw in? Would it be better to find a style for the game and then make sure people can draw that style, or work with artists and what they’re capable of/used to doing to try to find a middle ground?
Thanks!
Hello reader's!
I've got a game idea I really want to work on, I even have a friend who's willing to work on the sound/music side of things. I've got programming experience - almost three years but I was primarily working on data pipelines in python. I've picked unity as my engine which means I'll have to work in C# (I'm fairly confident in picking it up).
I'm currently looking for tutorials and reading materials for implementing the following mechanics:
Procedural Mesh Terrain Generation - everything I've found so far has been relatively unpolished.
Player character implementation - unity is complaining about some sort of controller conflict already after I attached a basic controller script to the player capsule 😅
Coding for unity in C# - Just to make sure I'm not writing something that already exists, unitys docs aren't exactly brilliant at explaining what something does without just telling you to look at the code. Even then it's very time consuming and I just want to make a quick prototype.
If you can think of anything else useful please don't hesitate to share!
So... ive recently released my first game (it didnt go well) and im working on a next one, and I'm starting to think about sharing development progress and building a small community around it.
The thing is, I really dont enjoy making youtube content. Like, at all, i hate being talking head, and it will draw my atention from game itself.
I am myself an artist, so i could share arts, early scenario drafts, some gifs with early code thingys etc.
So, my questions are:
TLDR I need to figure out how to get "experience" without suffering as much on things that will simply take away from my drive to make the full game, and I know purchasing professional guidance is an option, but it's too expensive for what is ultimately a passion project.
So, I have a grand idea for a spiritual successor to a dead game (TerraTech)
The problem is that while I have someone who would absolutely help me, and while they've worked in 3d Unity before, they haven't worked with an ECS. (Required to manage the sheer number of physics objects and raycast (not hitscan) projectiles the game has to simulate.) They're also somewhat busy.
I know that I'm new and that my project is ambitious to say the least. However, demo and practice games simply do not interest me. I have an idea for *one* demo game to practice making an in-game UGC editor (levels and weapons) in 2d. (Love you, Distance/Refract Studios)
One. I have been racking my head for ANYTHING that has even the tiniest chance of not just immediately causing burnout. And I can come up with exactly one; it isn't even meant to be balanced, just stupid, silly fun. I don't plan on doing bugfixes or updates.
I have TRIED to make demo games according to tutorials which simply hand me assets to use and walk me through it step by step; however, I struggle to even get unity to interact with my C# scripts.
So... Ai is retarded and can't really teach me things. I struggled to make a button function because things need to be explained to me in a very specific way, on occasion, and it took someone with the "Professional" tag in the Unity subreddit to explain what I was doing wrong in a way I finally understood. The timeline for my game is years with help. Or decades without.
There are plenty of free courses; I understand there's parts of the process of learning I can't skip, the biggest one being failure. I'm okay with making mistakes as long as they're repairable; but I don't want to suffer the same fate as the original game (outdated tech and spaghetti being the bane of the game's longevity.)
Does anyone have at LEAST one of the following;
- A course that's very compact and gives me the toolset required to create unique projects instead of creating a bunch of slop that's supposed to teach a dumbass like me how to use the fundamental tools
- A mindset that will help me deal with the pain of following basic tutorials when I could be spending the valuable time actually making progress on the game
- A mindset that allows me to forge ahead without getting anxiety over "making mistakes" when a decision has to be made that changes my options later down the line? (E.g I toiled over which engine and ECS to use for my game. Apparently Unity is the best choice since it's the most established and biggest budget, but I looked at Godot as well as some other niche engines built more readily around ECS and mass collision management. A good use of my time, but still excessive, it took me almost a week.)
So I studied computer science in college. My work experience has been more general SWE. Full stack dev as well as a go backend for another project for my company. Personal projects have mix of some AI projects and full stack projects. But the way AI is shaping SWE, I feel like passion towards what you’re building is as important as ever.
What would a path to break into game dev be? I’ve always been interested in it and did some basic projects in college (flappy bird clone, zombie survival top down shooter, all in unity). What should I focus on? Can I get a job with current level of experience?
Thanks for any advice!
In this job, what drives you? Mind you I'm just trying to find out what to expect as a programmer/gamedeveloper. So what drives you? Is the pay good? Or is it getting to see your creations come to life, or is it the joy of playing them? Etc.
Hi guys, I'm a Computer Science master's student soon graduating, preparing to look for a job in the industry.
I have created a few games nearly as a solo developer but everywhere I've read it's best to decide a goal career and focus portfolio/resume on it.
I think mixing together my personal preferences, my skillset and the entry level possibilities it would be best to aim for a gameplay engineer position.
On the other hand, my master's thesis regards NPR shaders in Unreal Engine 5 and I've developed a watercolor temporally coherent shader based on post-processing.
I don't know if it would be material for a tech artist position or a graphics engineer one, but what would you do?
Would you include it in my portfolio? Is it even interesting to have in a portfolio a work like that? And would you then aim for both gameplay and graphics position?
Sorry for the many questions but since I've read and seen a lot of comments underlining the importance of writing a specialized portfolio, I'm torn between adding a resource for which I've worked hard or hiding it to avoid confusion in the reader.
Thank you very much in advance for the help!
I am creative, but I have never been good at art. I am a strong coder, and with the right tools, I could figure out how to code almost anything. I have a passion for making games, but I always feel that I am held back by the fact that I can't create textures, animations, models, rigs, or any of the nice visual components that really make a game feel immersive. I know that If I were to get a job at an actual studio, that I would just be coding, and other people would be doing the art, but if I want full game projects as a solo dev that I can show off for better chances at those jobs, or just for myself, I am currently just stuck to using free assets, which really limits the atmosphere that I can create in a game.
To all the other solo devs out there. Were yall just good at art and forced yourself to learn how to code? Or were you good at coding and forced yourself to learn art? Or do you just buy asset packs on fab, and other places like that?
I really want to make a game because I didn't do for a long time and now I have no game ideas and I don't know how to come up with any idea, maybe some tips could help.
Hi there!
I've been wanting to make a fighting game for quite some while. I'm a skilled 3D modeller and know some basic Unreal 5.
My question is. How feasible is it? What would the size of a team for something like a simpler Tekken, maybe Tekken 4, be?.. And finally, are there any resources or kits out there for 3D fighters?
Hi all, I'm currently building multiplayer browser game, where you own planets that create probes, which again can be used to conquer more planets. I built it originally to try out SpacetimeDB, which I'm pretty happy with. However, there can be thousands of planets, and thousands of attacks at the same time, which starts to create substantial server costs. I'm currenly at about $20 per month, with around 20-40 active players.
Originally, I have hidden some features behind a subscription in order to cover the costs. However, many players complained (rightfully) that this was pay to win. So i changed it to sell purely cosmetic additions (other map layouts, player animations). However since I made this change, subscriptions dropped to essentially zero.
I was wondering in particular, has anyone made similar experiences? How much money did you spend on server costs before you got returns?
I'm curious as a game developer -- what are the top three things that catches your eye with games? Is it the art? The title? Is it bright colors? The random parrot in the corner?
Or do you tend to just follow recommendations from friends? (Aka probably get peer pressured into it -- this has happened to me far too many times)
I am currently making a horror game, and I admit I love to play horror games that one look scary, but two won't need to face a thousand puzzles to finish it. That and the reviews. I tend to look at reviews a lot.
I’m an indie dev trying to figure out where to focus my time, and honestly there’s way too much noise out there.
You see people talking about Steam games, mobile games, hyper/hybrid casual with publishers, web games (Poki/CrazyGames), freelancing, even devlogs/content but it’s hard to tell what actually makes money vs what just sounds good.
So I just want to hear from people who’ve actually made money
What path worked for you personally?
What didn’t work at all (even if it’s hyped)?
And if you were starting again today, what would you focus on?
so i’m 17 years old currently and my dream has always to be a game developer and im lost on how to go about becoming one and was wondering what i should start with. i’ve spent the last few years learning basic coding languages and im decently skilled but not sure where to start learning how to make games
Ok so this comes a bit out of nowhere and I’m LATE to the party on making this postmortem but that graphic at Summer Games Fest of over 9k+ games being launched on steam had me thinking. So here this goes. Feel free to ask me anything and I’d be more than happy to chat about set up, who to contact, my experience, all the things.
Context:
I work in AAA now and I HATE looking at that game because it’s so wack lol
Only launched on one console (I regret that but was young and dumb)
$135k in sales (about $35k the fist 3 months)
20,670 copies sold to date (still move around 165 or so copies when a sale happens
Helped me get a AAA job that still work right now
Launched on PS4 to EU and NA
I won a Epic Games Grant in 2018 for $25,000
Had no prior experience ever making a game before launching on console
Ok so after seeing that graphic at summer games fest I wanted to make a post about how I believe there isn’t enough conversation around consoles being much more friendlier and could help someone out in their game dev journey and/or find new audiences.
I can only speak for PlayStation but I know others offer helpful paths to launching on that platform.
PlayStation has free public advertising on their YouTube channel. It’s literally $0.00 to post your game to that entire audience. They do this with the YT and social media retweets. I’ve even heard from other indie devs that depending on its reception, they will reach out to chat about the game and placing it in other spots for advertisement. Microsoft will go so far as help fund your game. PS also lets you participate in sales for summer game fest and every single other major games event sale. They don’t exclusively pick and choose. My game, being SIX years old, not very well made, still sells hundreds of copies every time a sale comes up. That small check every month is nice.
It’s also gotten WAY more friendly for the folks who may look at console development and run lol. They have videos now that walk you through the process of publishing. YES, you do have to contact epic games to get a specific version of the engine that outputs to a PS5 but they also have an Incredible forum to ask folks for help. They respond fairly fast as well. They’ve also started a dev kit loaner program to get your feet wet. After a year or so, you have to pay $2k for a kit (insane I know, but worth it).
I was talking to a publisher scout at GDC and they had mentioned that console is gate kept by “fear” and if you can come to them with a console audience + steam wishlist, they are quicker to respond and hear you out to see what they could help on. I also spoke to folks who work on AAA optimization side and they said if you are a making a indie game and it’s small, 8/10 you don’t need to optimize insanely because these newer consoles can probably handle whatever you are making. Idk I just feel like there is a big “don’t go that way” around consoles, when the entry bar is MUCH lower than it’s being made out to seem.
I’m really only commenting on this because I did this and while I have regrets, I honestly think it did more positive than negative. It was hard but when you put it in the context of game development, what isn’t hard lol?
I need to speak my mind because it's been sitting on my chest for too long.
I found a game today that released this April, with over 12,000 reivews on Steam already. I'm happy for them, I mean that. I'm not trying to be polite for the internet. I am actually happy for their success, and it gives me hope (sometimes). But somewhere under this happiness, there's this cold thing that goes "you're not doing enough, you're not FAST enough, you will never get there, you will never make something people care about like this one does."
And then I completely freeze. I've been freezing like this for about two years now. (I only participated in two or three game jams, with uncompleted games).
It's not that nothing happened in those two years. I finished my EMBA, just wrapped that graduation project, which was no small thing. So, I know I can commit to hard, long things and finish them. But game development isn't a credential for me. It's the thing I actually want to live. I have so many stories I want to make real, imaginary worlds I've been carrying around for years, and the gap between "carrying them around" and "shipping them" to people to live them feels enormous when someone else is over there with 12,000 reviews.
I'm not looking for "just keep going" or "comparieson is the their of joy" kind of advice. I know those already and I tell them to myself all the time. I'm asking whoever has been in such a situation: how did you sit with the fear without letting it stop your hands? What got you moving again?
Recently the 3dassets.one website, which is a great search engine for free assets, added Lightbeans to the list of free texture resources, alongside other popular libraries like AmbientCG and PolyHaven.
While Lightbeans provides free downloads for their textures, their terms of service are terrible for creators, full of muddy wording, and the license can be revoked any time.
They definitely don't deserve to show up on the same list with AmbientCG and the like.
To preface: im a beginner dev and im using godot so
Context: We're a video game collective of four close friends based in Brussels (Belgium). We originally met during the 2024 Brussels Game Jam, and it immediately clicked. We shared the same passion for indie games, and at the time we had almost no experience making them. So we decided to release one game every month to gain experience and challenge us to release games. Since then, we've released 17 monthly games plus a few bonus games, on both Steam and Itch. We make almost no money, all of our games are free, but we've learned a huge amount along the way and had a lot of fun!
Here are some of the biggest lessons we've learned.
- Steam vs Itch - If you can afford it, try releasing your game on Steam. We've released the vast majority of our games exclusively on Itch because we didn't want to spend 85€ to publish a game each month on Steam. Itch also felt like the natural home for small indie experiments. Recently, though, we decided to release our last two games on Steam as well, and the difference was huge. We reached far more players than we ever did on Itch alone. Going forward, we'll do that systematically now. But keep in mind that Steam is gigantic platform that takes 30% of your revenues while on Itch you can choose the amount of revenue you give to the platform.
- Players will misunderstand things that feel obvious to you - No matter how obvious it feels to you, there is always a probability that players won't understand what you're trying to teach them. Whether it's a puzzle mechanic, a visual cue in the environment, or a new control scheme, we've repeatedly encountered situations where players got stuck on something that seemed completely clear to us. The best solution we've found for this is to add redundancy. If you can think of several ways to communicate something, use as many as possible. Try to combine different channels that reinforce each other: environmental design, sounds, dialogue, level layout, etc. And if players still don't get it, avoid interrupting their flow by popping up a mandatory window. Instead, use information that players can absorb at their own pace like signs or floating text.
- Confront your ideas often - If you work in a team, try to confront your ideas often, because each person will have a different vision of the game, if you don't communicate well. That's also the strength of working in a team, if you're alone it's easy to go for an idea without seeing its flaws but by working together we correct each others.
- How to brainstorm effectively - Over time, we found that our brainstorming sessions are the most efficient when they're focused on a single problem. Instead of brainstorming on the whole game, we identify one specific flaw or missing element in the game that we need to brainstorm on. I think it's important to just choose one element; otherwise, it can seem overwhelming to think about the entire game. We leave our PCs, go to separate corners with a piece of paper for 10 minutes, and come back with new ideas. Even if after the brainstorm no one has found a complete solution, by presenting our partial ideas and discussing them, we converge on a solution and all feed off each other's ideas.
- Start with small projects - Our first games were way too big. We had very little experience, but we were already designing projects that required far more work than we could realistically complete. And to be honest, even after all this time, we still struggle with this sometimes ^^ It's incredibly easy to get excited about an idea and suddenly imagine a game ten times larger than it needs to be. Cutting features you love is painful, but it's often necessary. If you're working on your first project, be especially careful about scope. We've met many gamedevs spending years on their dream game as their first game, while struggling learning to make games at the same time.
- Think before you code - It's too easy to get lost in polishing and adding stuff instead of designing the actual game. Try to make a draft of the system that you're about to code on paper before you start to code it.
That concludes my post! If you've been hesitating to start making games, my biggest recommendation is simple: make something small, finish it, release it, and start the next one. Before starting this challenge, I'd never made a game. I was just passionate about games from afar, and honestly, I think I would have never made one otherwise. Now I'm completely addicted to making games.
I'm making a genkidama for yall indiedev out there reading this, I send yall my life force use it to make good originals game!
The game was a point and click horror game, with Fnaf inspired gameplay.
The idea came when i discovered 3D models in the new Powerpoint version, as a Powerpoint geek since childhood i had to make something of this.
I imported some models and got to work, the idea was haunted statues.
i spent 6 to 8 months perfecting this game, coming up with new levels, original story. only to come to the limitation that at the end of the day its powerpoint youre using...
Limitations / Attempts to bypass:
To try and bypass this limitation, I used invisible shapes set on timers. These shapes sit on top of the visible HUD buttons. If the player takes too long to react, the timer expires, the invisible button triggers, and a hyperlink sends the player to a jumpscare screen. Ultimately, the scenarios are still pre-made, but I tried to make the gameplay feel more natural and random by letting players stumble into different scripted paths that seamlessly link into other scripted paths.
I initially tried to build an entire level on a single slide, but it became too laggy and unplayable due to the sheer number of objects on screen. To fix this, I switched to a system where the slide automatically progresses after 60 seconds (the maximum time a slide can remain active). I divided the level into 6 slides representing 12 AM to 6 AM, with each minute progressing the player to the next hour (e.g., 12 AM to 1 AM). However, this was problematic because PowerPoint can't retain game-state information across slides, dropping the player into a new hour completely detached from their previous actions. I eventually settled on creating separate branching paths that all lead to a final showdown with the demon to conclude the level.
Im glad to finally say that i have a finished product, i used Js to transform the whole game, and make it an actual working game with natural flow.
Developing with powerpoint was incredible!(y annoying) but it was my things. i feel good with me moving on from this niche platform and really taking my games to the potential they deserve
i will link a before and after video in the comments, thanks for reading <3 :)
They say attention span in shrinking. I always thought I have an attention span of a goldfish, but now it's more of an amoeba.
My sweet spot is ~2 weeks, past that point, I already start doom scrolling far deeper xD
Currently, I managed to pull of a prototype within the last 3 months, but every month beyond the 2 weeks point I was just disengaging more and more, so now I'm literally fighting for my life to add just one more rock, one more plant, mob, animation, feature, etc.
To fill that void, I jump into "one night stand" prototypes that I need to do in 1 day just to feel accomplished, and if it sticks, it earns my max 2 weeks capacity / focus.
How do you keep going when all motivation is gone and discipline feels like an uphill battle?
I am proud of my game and feel it's really fun to play, but making a post about it still feels like walking up to a stranger and demanding their attention for my hobby art project. It's cringy. And I think that probably comes through in my posts.
I think I'll try leaning a bit more into short form videos for a while. At least there I can say to myself "Hey, I didn't invade your subreddit. The algorithm chose this for you."
https://github.com/cyypherus/haven
After 3 or 4 years of hobby coding this UI project is in a usable-but-early state & I'd like to share it!
& heres what a view function looks like
fn view<'a>(state: &'a State, app: &mut PaneState) -> View<'a, State> { column_spaced( 20., vec![ text(id!(), format!("Count: {}", state.count)) .fill(Color::WHITE) .build(app), button(id!(), binding!(state.button)) .text_label("Increment") .on_click(|state, _app| state.count += 1) .build(app), ], ) .pad(20.) } When you do String::from("hello") the "hello" gets saved in the binary since it's a string literal. Then String::from makes a copy of that? Then essentially one of them becomes redundant. I know I can store a string slice to the string literal but is there any way to avoid this copy using String?
I remember implementing a Baccarat webapp a long time ago with PHP. It was a nightmare with thousands of source files, images, and bash/perl scripts. Now with Rust WASM I have zero images and only a handful of ts, css files. What a grateful time it is to be a webapp dev.
seeking opinion if using react with rust backend services, is a good idea? Rust has its own web frameworks, and those work axum w/vite. Is it worth moving to React here?
Thanks.
I'm working on a project inspired by Binary Waterfall, which is going to be a cli command that turns any file into a video, same way Binary Waterfall can but without the music player because I've tried creating a UI but it looked ahh so I gave up on it. I think I've got far enough into it where I think I can try bundling audio and frames into a video, but I have no idea how to, I searched up and got suggested ffmpeg-next, but I honestly, the docs are quite bad, it says nothing, the examples don't really say anything to me either, and even if they did unless theres a bigass comment explaining it I won't get it. Any ideas if there are alternative crates that might be more documented? Thanks.
I started messing around with Golang yesterday. I watched a couple of tutorials about concurrency and goroutines and wanted to implement the code I wrote in Rust (which I thought was very fast) in Go using routines and boy, I was shocked! It was able to run 5–10x faster than the Rust code did!
Now I'm not really doing anything serious with the code. It just looks for certain file types in my files like audio files or documents and prints their path. Nothing crazy. But I have to go through hundreds of directories and check around a thousand files (though I specified the depth it can reach, so it doesn't go 10 directories deep).
In Rust, I first used recursion when it finds a folder it goes through it, and when it finds another folder inside that one it goes into that too, then comes back to the previous one and continues from where it left off. This took around 700ms.
Then I implemented threads (OS threads). I spawned 3 threads and tried to implement a work-stealing logic where each directory is a unit of work. So when I find a directory, instead of going into it and halting my search in the current one, I put it into a queue so a free thread can pick it up and scan it for the target file type. Assuming fair distribution, each thread handles ~33% of the work. This took around 300ms, cutting the time nearly in half.
Now in Go, instead of a fixed number of threads, I create a goroutine for each new directory found so there's no waiting in a queue like in Rust. I can have 50 or even 100 routines working at the same time. This made things dramatically faster, finishing in sub-100ms, sometimes even hitting ~50ms. That's around 6x faster than Rust.
The main reason Go was faster comes down to goroutines vs Rust's OS threads. In Rust, when I request file I/O say fs::read_dir -it's asking the kernel to go fetch the data. The kernel won't let the thread just sit there waiting, so it puts the thread to "sleep" and goes about doing other things. With three threads, they can each request different file I/O and the kernel parks each of them until their data arrives. There's some context switching involved when a thread is put to sleep, its entire state is saved, and when the I/O result arrives the kernel wakes it and resumes from where it left off. So at most, three threads are waiting at any given time. Not massively expensive, but limited.
What makes Go different is that instead of the kernel managing this, Go uses its own scheduler. When a goroutine hits an I/O call, the scheduler intercepts it, registers interest with the kernel via epoll ("go fetch this"), parks the goroutine in a Go-managed data structure in userspace, then immediately puts another goroutine on that same OS thread. The process repeats so thousands of goroutines can be managed by just a handful of OS threads. The context switch overhead you'd pay in Rust? Not present here. It's all handled in userspace by the Go runtime at much lower cost.
So Go is faster, right? Well not always.
I have an HDD. HDDs are mechanical. The read head can only be in one place at a time it has to physically move to a specific position on the spinning disk. That's typically fast enough, but what happens when tens or hundreds of operations are all asking for different files at the same time? The head jumps all over the place, and that is significantly slower.
So how did I get those fast benchmarks?
Linux does something interesting when a directory is accessed, it caches it in RAM for future use. It turns idle, unused RAM into a cache (technically called the page cache). Any RAM not currently needed by a process is fair game for caching disk data. So my programs weren't really reading from the HDD at all they were reading from RAM. Hence the sub-100ms and ~300ms times.
But when I cleared that cache and ran them cold against the actual disk:
The Rust code took ~45 seconds
The Go code took a whopping 2 full minutes
The "disciplined," fixed number of threads in Rust is actually better suited for an HDD than hundreds of goroutines all thrashing the read head at once.
One caveat worth noting: this comparison is between Go's goroutines and manually implemented OS threads in Rust. Rust's async ecosystem (Tokio) uses the same epoll-based userspace scheduling as Go. The gap on SSD would likely be much smaller with an async Rust implementation.
I will rewrite the code with tokio, I expect it to perform as good as golang if not better.
EDIT: BTW I am not comparing the languages, I was just messing around with both of them and noticed the results and wanted to share them, and the rust code was kinda plain and not suited for this too.. I will try it with a better code
EDIT 2: I am a beginner in both languages and constructive criticisms are very welcome(tho doing that without actually looking at my code might hard) I am NOT comparing the two languages and I can even tell the code isn't fair I just wanted to share what I found🙏
By "generic owned buffer" I mean a generic type that accepts arrays ([T; N]), vectors (Vec<T>) and slices (Box<[T]>, Rc<[T]>, etc.).
My first thought was S: AsRef<[T]> + AsMut<[T]>. However, someone could deliberately define this:
```rust struct Foo<T> { bar: Vec<T>, baz: Vec<T> }
impl<T> AsRef<[T]> for Foo<T> { fn as_ref(&self) -> &[T] { &self.bar } }
impl<T> AsMut<[T]> for Foo<T> { fn as_mut(&mut self) -> &mut [T] { &mut self.baz } } ```
It's stupid, I know, but legal. And it can get even worse:
```rust struct Foo<T>(Vec<T>);
impl<T> AsRef<[T]> for Foo<T> { fn as_ref(&self) -> &[T] { if self.0.len() < 10 { &self.0 } else { &self.0[10..] } } }
impl<T> AsMut<[T]> for Foo<T> { fn as_mut(&mut self) -> &mut [T] { if self.0.len() < 20 { &mut self.0 } else { &mut self.0[5..] } } } ```
It seems that, unless I define a sealed trait, no code can be robust.
So I started using this on all of my projects
pub trait Boxed: Sized { fn boxed(self) -> Box<Self>; } impl<T> Boxed for T where T: Sized { fn boxed(self) -> Box<Self> { Box::new(self) } } So instead of
let box = Box::new(10); I do
let box = 10.boxed(); And IMO it shines when you do method chaining
let box = Box::new( // 🤓 value .method_1() .method_2() .method_3() ); let box = value // 🗿 .method_1() .method_2() .method_3() .boxed() This seems great. But is it? When I got the idea i first searched for crates that do this for you, but I didn't find any. If there aren't any then does this mean that this is a terrible idea?
I think it's great. But I'm only a beginner so I don't know best.
Hey everyone! cpal 0.18 is out, bringing two long-requested native Linux backends, a unified error API, and accurate timestamps across every platform.
Two new first-class backends join the Linux and BSD lineup:
Enable them with the pipewire and pulseaudio Cargo features. When multiple backends are compiled in, cpal selects the best available one at runtime: PipeWire > PulseAudio > ALSA.
All per-operation error enums (DevicesError, BuildStreamError, StreamError, etc.) are replaced by a single cpal::Error with a kind() getter:
match device.default_output_config() { Err(e) => match e.kind() { cpal::ErrorKind::DeviceNotAvailable => { /* ... */ } cpal::ErrorKind::DeviceBusy => { /* retry */ } _ => { /* ... */ } } } Two new error kinds make previously indistinguishable cases actionable: DeviceBusy (EBUSY/EAGAIN is retryable) and PermissionDenied for OS-level access denials. See the upgrading guide for the mapping table.
Timestamps previously reflected when the callback fired rather than when audio would actually reach hardware. This release corrects that across every backend.
A new StreamTrait::now() method lets you query the stream's clock from outside the callback for A/V sync: read the audio clock at any point and correlate it with your video timeline.
default_input_config() and default_output_config() now prefer 48 kHz, then 44.1 kHz, on all backends. Defaulting to 44.1 kHz meant cpal's chosen rate often didn't match the hardware's preferred rate. Pin it explicitly if you need 44.1 kHz.
StreamTrait::buffer_size() queries the stream's current buffer sizeSupportedStreamConfigRange::try_with_standard_sample_rate() / with_standard_sample_rate() snaps to 48 kHz or 44.1 kHz from a supported rangedevice_by_id() now accepts PCM shorthand names like hw:0,0 and plughw:foo; streams attempt to recover after system suspend; capture streams no longer hang on overruns; backward-stepping timestamps during startup and xrun recovery are fixed.collect() on the device iterator no longer stops after the first device; device enumeration and stream creation now work correctly when called from spawned threads; distortion from drivers that fire the buffer callback multiple times per cycle is fixed.ErrorKind::DeviceNotAvailable.FriendlyName over DeviceDesc, so you see the readable name from system settings; default streams automatically reroute when the system default device changes....and a lot more. The changelog has the full picture.
play() call: ALSA, CoreAudio, and JACK previously auto-started streams on creation. If you never called play(), your callback will never fire after upgrading.Error types unified: match on e.kind() instead of per-operation error enums.StreamConfig passed by value: StreamConfig now implements Copy; drop the & at build_*_stream call sites.StreamInstant API overhauled: aligns with std::time::Instant. Change add/sub to checked_add/checked_sub (or +/-); duration_since returns Duration (saturating), secs/nanos are now u64.F32 explicitly if you were relying on it as the default.wasm32-unknown-unknown with the wasm-bindgen feature.Full details and migration examples in the upgrading guide.
The design goals are tracked over at the GitHub repository. Highlights:
play/pause to start/pause/stop with a draining stopBufferSize refactor with range supportThe feature set may change.
16 people contributed to this release, 13 of them for the first time: Access, atlv, Chandler Newman, Colin Marc, Edwin Löffler, Jerry.Wang, Mat Silverstein, Mike Hilgendorf, osoftware, Raphael Poss, Seto Elkahfi, Sintel, thewh1teagle, Umer Haider, and Worik Stanton. Welcome aboard, and thank you all!
If you find value in cpal, sponsorships are a heartfelt token of appreciation and help cover the costs of building it: music service subscriptions, hardware for cross-platform compatibility, and tooling. Every contribution helps: sponsor me at GitHub.
Huge thanks to everyone who contributed to this release!
Kopuz is a music player app which is written in rust using dioxus and it was only supporting local and self hosted servers for a long time but now it supports yt music too! Hopefully this will be one of the best music player which is written in rust.
One request we had is negative ordering, which we haven't had a need for in our own use of the crate but would welcome a contribution for it!
Hi everyone,
I’m working on a Rust project called **Ecosystem**.
The idea is to turn live computer activity into a cozy animated terminal world instead of showing raw numbers like a normal system monitor. CPU, memory, network, and disk activity
influence the scene indirectly through animation and atmosphere.
The current direction is a **Midnight Cat Cafe** rendered directly inside the terminal using the Kitty graphics protocol. The video/gif shows an early visual prototype: a pixel-art cafe
scene with animated cats, rain/window ambience, counter activity, and metric-driven motion.
Technical status:
- Rust terminal app
- Kitty graphics protocol renderer
- Internal RGBA canvas
- Dirty-region partial frame updates
- Live Linux system metrics
- Current canvas : `512x240`
- Running around 30 FPS in my local terminal
This is still early art-wise. I’m much more confident in the rendering/metrics foundation than the visual direction, so I’d really appreciate feedback.
If you have experience with pixel art, color theory, game art, cozy scenes, or just a good eye for visuals, I’m very open to thoughts on:
- Composition and readability from a normal viewing distance
- Color palette and lighting
- How to make the cafe feel more alive
- Better ways to represent system activity visually
- Cat placement, scale, and animation ideas
- Anything that currently feels off or amateurish
I’m not trying to make a realistic system monitor. I want it to feel like a tiny living desktop companion that happens to respond to your machine.
If you have a moment, I’d genuinely appreciate honest feedback or a project review. I'm interested in hearing both what works and what could be improved.
The CPU usage at the bottom of my screen is caused due to obs, firefox spotify and other's, On my machine this code idles around 2-3% CPU now !
Edit:
github link: https://github.com/Hemantabhusal/EcoCore
hound is the established minimal WAV crate in Rust: stable, widely used, and dependency-free. I have developed audio_samples and audio_samples_io, where audio_samples_io provides WAV/FLAC I/O for a typed, channel-aware audio representation.
The linked article benchmarks the two across bulk reads, bulk writes, streamed reads, and streamed writes, on files up to 600 seconds long, across i16, i32, and f32 sample types. This post summarises the results and methodology.
I am the author of the
audio_samplessuite of crates. The the benchmark harness, raw timing data, and analysis scripts are all available here: github.com/jmg049/aus_vs_hound.
Full article with API walkthrough, methodology, implementation notes, figures, and limitations
The main architectural difference is that hound only exposes WAV data through a per-sample iterator, while audio_samples_io offers both bulk reads and streamed reads. For bulk reads, when the on-disk sample type matches the requested Rust type, audio_samples_io reinterprets the validated byte buffer directly.
Four conditions were tested: bulk reads, bulk writes, streamed reads, and streamed writes. The benchmark machine has a 32 MiB Last Level Cache (LLC), so results are broken into cold-ish, DRAM-warm, and LLC-warm conditions to capture different access patterns.
Reads
Speedup = hound mean / audio_samples_io mean. Values above 1 mean audio_samples_io is faster.
| Condition | i16 | i32 | f32 |
|---|---|---|---|
Bulk read, cold-ish 600 s file (POSIX_FADV_DONTNEED, advisory) | 4.5× | 1.9× | 3.3× |
| Bulk read, DRAM-warm 600 s file | 8.6× | 3.3× | 2.5× |
| Bulk read, LLC-warm 60 s file | 105× | 29× | 21× |
| Streamed read, 4,096-sample chunks, 60 s | 35× | 14× | 10× |
The 105× figure is an LLC-warm repeated-access result where the 60 s working set fits within the LLC on the test machine. LLC-warm and DRAM-warm conditions reflect workloads where audio data is read repeatedly from memory, such as ML training pipelines. For single-pass dataset loading, the cold-ish 600 s results (1.9–4.5×) apply.
Writes
Streamed writes, 4,096-sample chunks, 600 s files:
| Condition | i16 | i32 | f32 |
|---|---|---|---|
| Streamed write | 1.84× | 2.10× | 1.78× |
The write results are chunk-size dependent. audio_samples_io is slower than hound for i16 at 512-sample chunks, roughly reaches parity around 1,024 samples, and is faster from 4,096 samples upward. The i16 benchmark uses hound's optimised SampleWriter16 path; hound has no equivalent bulk-flush path for i32 or f32.
Use hound when you want a minimal, dependency-free WAV crate, are targeting constrained environments, or already have hound-based code.
Use audio_samples_io when you want faster WAV reads and a typed, channel-aware representation that carries sample rate, channel count, and frame count through the rest of an audio pipeline. For projects that already want a structured audio representation and can accept the dependency graph, it is a better fit.
The full article covers the benchmark environment (QEMU/KVM VM, no CPU affinity pinning), Criterion setup, cold-read methodology caveats, dependency discussion, and implementation-level analysis.
Benchmark repository: github.com/jmg049/aus_vs_hound audio_samples: github.com/jmg049/audio_samples audio_samples_io: github.com/jmg049/audio_samples_io
I made a small Rust thing over the last while and figured I'd share it here.
spdr reads DDR5 SPD data, the contents of the little EEPROM on a memory stick that holds its timings, geometry, and the XMP/EXPO profiles. On top of the decoder there's a linter that flags values that are internally inconsistent even when the CRC checks out, things like a tRC that doesn't equal tRAS + tRP, or a CAS latency the module doesn't actually list as supported.
The reason I started it is that the JEDEC spec for the layout (JESD400-5) is paywalled, so there's no clean open reference for what each byte means. I wrote every field decoder out explicitly and pinned each offset to an open source I could cross-check against, so the code ends up reading as a reference for the format about as much as a tool.
The core crate is no_std, allocation-free, and #![forbid(unsafe_code)], so it can sit in firmware or UEFI contexts; the CLI is a separate crate on top. Malformed input returns a typed error instead of panicking, which is property-tested.
It's early, and only validated against one real module so far, so the scope is narrow on purpose. At the moment, unbuffered UDIMM is complete, and the registered/server module types aren't decoded yet.
Hi all,
I'm a Scala developer learning Rust and writing about the experience on my blog. This is my second post in the series, focused on ownership and the borrow checker: https://someblog.dev/en/blog/nobodys-coming-to-clean-up-after-you/
The first one was about how readable Rust feels at first when you're coming from another language – until it doesn't. This one goes a step further: what happens when there's no garbage collector to save you.
I know ownership is covered everywhere, but I'm trying to capture what it actually feels like to go from a language with a GC to one that makes you think about every move. If anything is inaccurate or could be explained better, I'd genuinely appreciate the feedback – I'd rather fix things now than carry mistakes through the whole series.
Thanks for your time!
For a long time, Brainfuck has lacked modern tooling — not anymore. blah is:
I'm trying to write a software for personal use on Windows 11, using rust and slint. But no matter what I do, the titlebar of the software and the Alt-Tab interface always show a generic windows icon. My app icons are fine in the taskbar, windows explorer folders, properties window, and in task manager. So far I've tried
- icon: root.window-icon; in the .slint, pushed an Image from Rust via the generated set_window_icon setter
- include_bytes! → image::load_from_memory → SharedPixelBuffer → Image::from_rgba8 → set_window_icon), and the setter was called
- changing 512x512, 256x256, and 32x32 png in assets
- using unstable-winit-030 to set directly
- clearing cache
- switching computers and windows 10 and 11 systems
I can't seem to find any solutions online. Is there any way to fix this?
I remember implementing a Baccarat webapp a long time ago with PHP. It was a nightmare with thousands of source files, images, and bash/perl scripts. Now with Rust WASM I have zero images and only a handful of ts, css files. What a grateful time it is to be a webapp dev.
| Most agent harnesses are bloated, ship with way too many features out of the box, and use a webstack for a CLI/TUI application. I didn’t like that, so I built a minimalist agent harness in Go: tcell for the TUI, Lua extensions via gopher-lua, a minimal hand rolled agent loop, sessions managed in sqlite, and a handful of tools. No permissions, no sub agents, no swarms, no MCP, none of that nonsense. [link] [comments] |
If you use WASM in Go, you have probably been following u/ncruces' wasm2go which transpiles a .wasm file to a pure Go package. You may have noticed that it does not include a WASI host interface for use case needing one.
Announcing wasm2go-wasi-host, a bolt-on WASI Preview 1 host layer for Go-based WebAssembly runtimes. The goal is to provide a standards-based implementation that emphasizes correctness, reliability, and robustness rather than just passing basic demos.
This project incorporates proven code and design lessons from wazero, including components that have already seen extensive real-world use and testing.
Three points worth calling out are:
wasm32-wasip1 tests from the official wasi-testsuite.internal/wasi/, internal/wasi/sysfs/) are directly copied or slightly adapted from wazero. This is code that is production hardened from years of use.The dependencies are stdlib and x/sys.
This code has been heavily tested on Linux and Macos. I have a goal to add Windows and other platforms in the near future.
It's beta right now. The API is stable and fully documented in GoDoc, I've ported a handful of my own projects and a small number of 3rd party Go packages to it. So far, I have found no issues, but it needs more eyes on it.
Please try to break it. I welcome critical feedback, bugs, missing edge cases, design complaints, API friction — whatever you've got. I am especially curious about any filesystem behaviour that works fine on wazero or Wasmtime but does not work here.
Thank you! lbe
I'm learning Go and recently implemented graceful shutdown using os/signal, signal.NotifyContext, and context cancellation.
I'm curious: where is the concept of "graceful shutdown" actually defined in the Go ecosystem? Is it an officially documented pattern in the Go standard library, or is it more of a general software engineering concept that's implemented using Go primitives?
Are there any official Go docs, design discussions, blog posts, or source code examples that are considered the canonical reference for graceful shutdown in Go?
| Would anyone here benefit from golang bindings for turbovec or would you consider writing them? It seems like it would be ideal to integrate with golang for performant vector search while using less memory. [link] [comments] |
Yo what’s up homies. I’m working on a POC and in it I’m thinking of having a Mono Repo Containing all of our utilities sites together. Each of the sites share the same exact tooling and libraries and often the same exact logic copy and pasted from one project to another ( i.e connecting to db; connecting to apis; etc…)
My plan is to do the following
‘’’md
- backend
- go.mod
- go.sum
- cmd
- util1
-main.go
-internal
-util2
-main.go
-internal
- pkg
-db
-api
-cache
- fronted
-util1
-util2
-companyComponents (shared web modules)
‘’’
Above a simple example. Right now I have to basic programs building with shared logic between them.
Really im asking two questions
That’s all for now folks thanks again internet for taking the time to consider my thoughts :D
Edit: formatting sucks. I did this on my phone and lol it didn’t like the white space for the directories. I’ll try and get on my laptop in a second.
| submitted by /u/Velciak [link] [comments] |
I would like to know if writing idiomatic Go gave you habits or ways of thinking that stuck with you beyond Go itself : things that transferred into how you design code and architecture in general, regardless of the language, things you pay more attention to now than you did before, etc etc.
If yes, why ? Do you have specific examples that come to your mind?